О GetMessage (..) в win32 - PullRequest
       0

О GetMessage (..) в win32

0 голосов
/ 23 февраля 2012

Я новичок на Win32-платформе, и есть некоторые вопросы по поводу

BOOL GetMessage(LPMSG lpMsg,HWND hWnd,UINT wMsgFilterMin,UINT wMsgFilterMax) ;

Я не знаю, что это означает wMsgFilterMin и wMsgFilterMax? Спасибо .....

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Прежде всего, имейте в виду, что GetMessage () возвращает только опубликованные сообщения. Их не так много, сообщения мыши и клавиатуры, WM_INPUT, WM_TIMER, WM_PAINT, WM_QUIT. Плюс ко всему, что ваш собственный код доставляет, вызывая PostMessage (), WM_USER + сообщения.

Использование фильтра довольно необычно, обычно вы пропускаете 0 и 0, поэтому ничего не фильтруется. Вы можете рассмотреть возможность передачи WM_PAINT для сброса всех ожидающих запросов на рисование. Я не могу представить себе веской причины фильтровать сообщения мыши или клавиатуры. Но конкретный вариант использования - это ваши собственные опубликованные сообщения. Обычно используется для доставки уведомлений из рабочего потока в поток пользовательского интерфейса, например. Возможно, вы захотите отфильтровать их, чтобы они обрабатывались раньше любого из обычных сообщений.

Просто положи это в задний карман. Вы можете использовать его когда-нибудь.

0 голосов
/ 23 февраля 2012

диапазон от wMsgFilterMin до wMsgFilterMax для фильтрации.

номер сообщения: WM_XX, например WM_CREATE (0x0001), WN_PAINT (0x000f), диапазон от 0x0001 до 0x000f будут возвращаться сообщения.

Если вам нужен только один вид сообщения, тогда сделайте wMsgFilterMin равным wMsgFilterMax.

Если фильтрация отсутствует (возвращаются все типы сообщений), поместите оба wMsgFilterMin и wMsgFilterMax 0.

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