Что означают эти коды WndProc? - PullRequest
1 голос
/ 18 ноября 2008

Я пытаюсь сделать окном, которое закрывается, когда вы нажимаете вне его , и в данный момент я пытаюсь сделать это, обрабатывая функцию WndProc.

Ни одно из сообщений, которые я до сих пор получаю, не кажется полезным, но есть некоторые, которые я совсем не понимаю. Что представляют собой коды 0x0118, 0xC123, 0xC128 и 0xC12E?

Ответы [ 2 ]

4 голосов
/ 18 ноября 2008

0x0118: WM_SYSTIMER (недокументированный) используется для мигания каретки

Остальные три должны быть сообщениями, определяемыми приложением (что угодно, в диапазоне от 0xC000 до 0xFFFF), поэтому вы не найдете их нигде.

2 голосов
/ 18 ноября 2008

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

Более сложный способ - установить низкоуровневый хук для мыши. Чтобы выполнить глобальный перехват, вам нужно поместить код перехвата в неуправляемую DLL.

A действительно простой способ - просто закрыть форму, когда она деактивирована.

EDIT

К сожалению. Я только что понял, что не ответил на ваш прямой вопрос об идентификаторах сообщений. Сообщение 0x118 не определено в winuser.h, поэтому я предполагаю, что это недокументированный идентификатор сообщения. Идентификаторы сообщений в диапазоне от 0xC000 до 0xFFFF являются сообщениями, определяемыми приложением. Эти идентификаторы возвращаются RegisterWindowMessage.

...