Невозможно получить событие щелчка мыши после потери фокуса - PullRequest
0 голосов
/ 05 марта 2012

Я работаю над существующим проектом и пытаюсь добавить в него дополнительное окно.Мне удалось создать окно, но исходное окно не может получить событие щелчка мыши, если я вызываю ShowWindow (m_hwnd, SW_SHOW), чтобы показать мое дополнительное окно.Однако исходное окно может получить событие перемещения мыши.

Похоже, что исходное окно не обрабатывает некоторое событие должным образом, поэтому его нельзя активировать щелчком мыши, но я не знаю, какое событие вызвало активацию.

вот список сообщений, обработанных исходным окном:

WM_CLOSE
WM_MOUSEACTIVATE
WM_ENTERSIZEMOVE
WM_EXITSIZEMOVE
WM_ENTERMENULOOP
WM_EXITMENULOOP
WM_HOTKEYWM_SYSCHAR
WM_CHAR
WM_SYSKEYDOWN
WM_SETCURSOR
WM_MOUSEMOVE
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_MOVE
WM_SIZE
WM_ACTIVATE
WM_SETFOCUS
WM_KILLFOCUS
WM_WINDOWPOSCHANGED
WM_STYLECHANGED
WM_INPUTLANGCHANGE

1 Ответ

0 голосов
/ 05 марта 2012

Вы должны предоставить больше информации, чтобы прояснить свой вопрос. В любом случае, сообщения мыши получают только окно, на которое наведена мышь (либо клиентская, либо не клиентская), плюс окно, для которого был вызван SetCapture. Таким образом, ваша «проблема», вероятно, не из-за «неправильной обработки сообщений», а из-за неправильного понимания концепции входных сообщений. Кроме того, я думаю, что отключенные окна не получают входные сообщения (те, для которых был вызван EnableWindow(hWnd, FALSE)).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...