누군가가 "Enter"를 클릭하면 데이터를 수락 할 수있는 편집 컨트롤을 만들었습니다. 나는 그렇게하기 위해 서브 클래 싱을 사용했다. 거의 완벽하게 작동했습니다. 그러나 "Enter"를 클릭하면 매번 "Error"소리가납니다. ES_MULTILINE 및 ES_AUTOVSCROLL을 사용하여 무시하려고했으나 부분적으로 도움이되었습니다. 이제 "Enter"를 클릭 한 후 소리가 나지 않지만 텍스트 상자에 쓸모없는 "Enter"문자가 나타납니다. 삭제할 수 없습니다. 시스템 사운드를 우회하는 방법은 무엇입니까? 또는 해당 텍스트 상자에서 "Enter"문자를 삭제하십시오 (SetWindowText (handle, "") 도움이되지 않습니다).C++ winapi - 편집 컨트롤 서브 클래 싱 - "Enter"를 클릭 할 때 귀찮은 소리가 발생했습니다.
답변
ES_MULTILINE
, ES_AUTOVSCROLL
또는 ES_WANTRETURN
스타일 플래그가 필요하지 않습니다.
에서 경고음이 울리지 않게하려면 해당 컨트롤에 대해 WM_CHAR
메시지를 처리하고 다른 모든 키에 대해 호출해야하는 기본 창 프로 시저를 호출하지 않고 VK_RETURN
에 대해 0을 반환해야합니다.
'WM_KEYDOWN' 메시지를 처리 할 필요가 없습니다. 'WM_KEYDOWN' 디폴트 처리 ('TranslateMessage'에 대한 호출을 통해)를 처리하지 않으면 하나 이상의'WM_CHAR' 메시지를 생성합니다. 비프 음을 막기 위해서는'WM_CHAR '을 다루는 것으로 충분하다. – IInspectable
일했습니다. 고마워요! – user3366592
코드 예를 보려면 [Windows CE의 한 행 EDIT 컨트롤에서 Enter 키를 누를 때 경고음을 끄는 방법] (https://stackoverflow.com/a/3590126/1377770)을 참조하십시오. –
편집을위한 WM_CHAR
의 기본 처리가 입력 및 탭과 같은 잘못된 문자에 대해 MessageBeep
함수를 호출한다는 것을 배웠습니다. 나는 편집 도구를 컨트롤 사이에 탭을 WM_KEYDOWN
(스크롤 막대에 대해 Petzold로 표시됨) 가로 채어서 하위 클래스로 만들었지 만 탭을 눌렀을 때 신호음을 울리고있었습니다. 그래서 나는 탭을 누를 때 기본 처리를 피하기 위해 WM_CHAR
을 가로 채고 경고음을 멈추게한다.
- 1. C++ 서브 클래 싱
- 2. 서브 클래 싱 NSMutableArray
- 3. PyQt 서브 클래 싱
- 4. DataGridView 서브 클래 싱
- 5. UIView를 서브 클래 싱 할 때 메모리 누수가 발생했습니다.
- 6. OnClickListener 서브 클래 싱
- 7. UIAlertView 서브 클래 싱
- 8. Slick.Grid 서브 클래 싱
- 9. 서브 클래 싱 경고
- 10. LinearLayout의 서브 클래 싱
- 11. 서브 클래 싱 버튼
- 12. 서브 클래 싱 배열
- 13. MKPinAnnotationView 서브 클래 싱
- 14. 서브 클래 싱 NSBox
- 15. 서브 클래 싱 제어
- 16. 서브 클래 싱 NSString
- 17. 자바 서브 클래 싱
- 18. UIScrollview의 서브 클래 싱
- 19. UIImageView 서브 클래 싱
- 20. Backbone.View 서브 클래 싱
- 21. ActiveRecord 서브 클래 싱?
- 22. 서브 클래 싱 NSOutlineView
- 23. UIDocument의 initWithFileURL 서브 클래 싱
- 24. OSX에서 CLLocation 서브 클래 싱
- 25. pyqtgraph.ParameterTree 문제 서브 클래 싱
- 26. WKWebView를 서브 클래 싱 할 수 없습니다.
- 27. DLL에서 C++로 서브 클래 싱
- 28. Windows Borland C++ Builder의 서브 클래 싱
- 29. ctypes 형식 서브 클래 싱
- 30. Java : AsyncTask 서브 클래 싱
'ES_WANTRETURN'을 사용해 보셨습니까? – nwp
여러 줄이 아닌 편집 컨트롤에서 Enter 키를 누르는 것이 의미가 없으므로 경고음이 울립니다. Enter는 OK 버튼과 같은 윈도우의 기본 컨트롤을 작동하도록 예약되어 있습니다. 왜 쓸모없는 열쇠를 누르는거야? 대신에 무슨 일이 일어나야합니까? –
@nwp - ES_WANTREURN은 아무 것도 변경하지 않았습니다. – user3366592