2017-02-04 4 views
0

QMainWindow에서 제목 표시 줄에 마우스를 끌면 winEvent 가상 함수에서 WM_KEYDOWN 메시지를받을 수 있습니다. 스파이에서 WM_KEYDOWN 메시지를받을 수도 있습니다.이 메시지에서 VK_CONTROL과 "C"가 눌린 것을 볼 수 있습니다.마우스를 드래그하면 qt에서 WM_KEYDOWN 메시지가 트리거 될 수 있습니다. QMainWindow

제목 표시 줄에없는 QMainWindow를 두 번 클릭해도 똑같은 일이 발생할 수 있습니다.

아이디어가 있으십니까?

답변

0

WM_KEYDOWN이라는 이름에도 불구하고 마우스 클릭에 대해서도 트리거됩니다. WM_KEYDOWN의 wParam은 다음과 같이 described in the documentation입니다.

비 시스템 키의 가상 키 코드입니다. 가상 키 코드를 참조하십시오.

그리고 the documentation for virtual-key codes을 보면 0x01, 0x02, 0x04, 0x05 및 0x06 코드가 모두 마우스 클릭에 해당합니다. 드래그하는 것은 마우스 버튼을 누르고 있기 때문에 예상되는 동작입니다.

+0

감사합니다. 그러나 1) ASCII 코드 0x03 (ctrl + c)은 마우스 클릭에 매핑되지 않습니다. 2) Qt 윈도우가 아닌 윈도우 윈도우를 드래그하면 해당 메시지를받을 수 없습니다. – user497032