PeekMessage

PeekMessage функція перевірки потоку чергу повідомлення повідомлення і розміщує повідомлення (якщо є) в зазначених структурах.

(BOOL PeekMessage LPMSG  lpMsg, / / вказівник на структуру для повідомленняHWNDhWnd, / / ручка вікнаUINTwMsgFilterMin, / / перші повідомленняUINTwMsgFilterMax, / / Останнє повідомленняUINTwRemoveMsg / / видалення прапори);
 

Параметри

lpMsg
Вказівник на структуру MSG , яка отримує повідомлення інформації.
hWnd
Ручки для вікна, чиї повідомлення повинні розглядатися.
wMsgFilterMin
Визначає значення перше повідомлення в діапазоні на наявність повідомлень.
wMsgFilterMax
Визначає значення Останнє повідомлення в діапазоні на наявність повідомлень.
wRemoveMsg
Визначає спосіб обробки повідомлень. Цей параметр може бути одне з таких значень:
Значення Значення
PM_NOREMOVE Повідомлення не видаляються з черги після обробки на PeekMessage.
PM_REMOVE Повідомлення видаляються із черги після обробки на PeekMessage.

За потреби можна об'єднати значення PM_NOYIELD або PM_NOREMOVE або PM_REMOVE. Цей прапор не дозволяє системі від звільнення будь-які теми, що чекає на caller йти простою (див WaitForInputIdle).

За промовчанням усі типи повідомлень обробляються. Щоб указати, що тільки певні повідомлення оброблятиметься, вкажіть одну або кілька з таких значень:
Значення Значення
PM_QS_INPUT Windows NT 5.0 і Windows 98: Процес повідомлень миші та клавіатури.
PM_QS_PAINT Windows NT 5.0 і Windows 98: Процес фарба повідомлень.
PM_QS_POSTMESSAGE Windows NT 5.0 і Windows 98: Процес все Написав повідомлення, включаючи таймери і гарячі клавіші.
PM_QS_SENDMESSAGE Windows NT 5.0 і Windows 98: Процес всі відправлені повідомлення.

Повернення значень

Якщо повідомлення, повернутого значення є ненульовим.

Якщо немає повідомлень, значення, що повертається, є нуль.

Зауваження

На відміну від GetMessage функції PeekMessage функції не чекати повідомлення бути поміщені в черзі, перш ніж повернутися.

PeekMessage отримує лише повідомлення, пов'язані з вікна, визначені hWnd параметр, або будь-якому з своїх дітей, як зазначено, за допомогою функції IsChild і в межах діапазону значень повідомлення, зважаючи на wMsgFilterMin і wMsgFilterMax параметри. Якщо hWnd NULL, PeekMessage отримує повідомлення для будь-якого вікна, що належить до поточної ланцюжка, прийняття виклику. (PeekMessage не отримати повідомлення для windows, які належать до інші теми). Якщо hWnd – 1, PeekMessage лише повертає повідомлення з hWnd значення NULL, як написав PostThreadMessage функції. Якщо wMsgFilterMin і wMsgFilterMax , як нуль, PeekMessage повертає всі наявні повідомлення (тобто без фільтрації діапазону проводиться).

WM_KEYFIRST і WM_KEYLAST констант можна використовувати як фільтр значень для отримання всіх повідомлень клавіатури; WM_MOUSEFIRST і WM_MOUSELAST константи використовуються для отримання всіх повідомлень миші.

Функція PeekMessage зазвичай не видалити WM_PAINT повідомлення з черги. WM_PAINT повідомлення залишаються в черзі, поки вони обробляються. Однак, якщо повідомлення WM_PAINT null оновлення регіону, PeekMessage видалити з черги.

Windows CE: WM_PAINT повідомлення з null оновлення регіону не видалено з черги.

QuickInfo

nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Потрібна Версія 1.0 або пізнішу версію.
Заголовка:Оголошена в winuser.h.
Імпортувати бібліотеки:Використання user32.lib.
Юнікод:Реалізований у вигляді Юнікод і ANSI версії на Windows NT.

Дивіться також

Повідомлення та повідомлення черги огляд, повідомлення та функції черги повідомлень, GetMessage, IsChild, MSG, WaitForInputIdle, WaitMessage

Index