GetMessage функція отримує повідомлення із закликом потік черга повідомлень і ставить його в зазначених структурах. Ця функція може стати обидва повідомлення, пов'язані з вказаного вікна і тема повідомлення Опубліковано через PostThreadMessage функції. Функція отримує повідомлення, що лежать у вказаному діапазоні значень повідомлення. GetMessage не отримати повідомлення для windows, що належать інші теми або програми.
(BOOL GetMessage LPMSG lpMsg, / / адреса структури з повідомленняHWNDhWnd, / / ручка вікнаUINTwMsgFilterMin, / / перші повідомленняUINTwMsgFilterMax / / Останнє повідомлення);
Значення | Значення |
---|---|
NULL | GetMessage отримує повідомлення для будь-якого вікна, що належить до виклику потік і потік повідомлень, надісланих до виклику потоку через PostThreadMessage. |
Якщо функція отримує повідомлення не WM_QUIT, значення, що повертається, є ненульовим.
Якщо функція отримує WM_QUIT повідомлення, повернутого значення дорівнює нулю.
Якщо повідомлення про помилку, значення дорівнює -1. Наприклад, функція не відбудеться, якщо hWnd на неприпустимий дескриптор вікна або lpMsg є неприпустимий вказівник. Щоб отримати докладні відомості про помилку, зателефонуйте GetLastError.
Застосування зазвичай використовує значення, що повертається визначається, чи до кінця основний цикл і вийти з програми.
Функцію GetMessage тільки отримує повідомлення, пов'язані з вікна, визначені hWnd параметр, або будь-якому з своїх дітей, як зазначено, за допомогою функції IsChild і в межах діапазону значень повідомлення, зважаючи на wMsgFilterMin і wMsgFilterMax параметри. Якщо hWnd NULL, GetMessage отримує повідомлення для будь-якого вікна, що належить до виклику потік і потік повідомлень, надісланих до виклику потоку через PostThreadMessage. GetMessage не отримати повідомлення для windows, які належать до інших тим, ні для теми, інші, ніж виклику потоку, навіть якщо hWnd не NULL. Тема повідомлення, написав PostThreadMessage функції, hWnd повідомлення значення null. Якщо wMsgFilterMin і wMsgFilterMax , як нуль, GetMessage повертає всі наявні повідомлення (тобто без фільтрації діапазону проводиться).
WM_KEYFIRST і WM_KEYLAST констант можна використовувати як фільтр значень отримати всі повідомлення, пов'язані з введення клавіатури; WM_MOUSEFIRST і WM_MOUSELAST констант можна використовувати для отримання всіх повідомлень миші. Якщо wMsgFilterMin і wMsgFilterMax параметри рівні нулю, функція GetMessage повертає всі наявні повідомлення, (що є без виконання будь-яких фільтрування).
GetMessage не видаляє повідомлення WM_PAINT з черги. Повідомлення залишаються в черзі, поки не оброблено.
Зверніть увагу, що значення функції можуть бути ненульовим, нуль або -1. Таким чином, ви повинні уникати код, як це:
під час (GetMessage (lpMsg, hWnd, 0, 0))...
Можливість повернення значення-1 означає, що такий код може призвести до помилки критична додатків.
nbsp; Windows &NT: вимагає 3.1 або пізнішої версії.
Windows:Вимагає Windows 95 або пізнішої версії.
Windows CE:Потрібна Версія 1.0 або пізнішу версію.
Заголовка:Оголошена в winuser.h.
Імпортувати бібліотеки:Використання user32.lib.
Юнікод:Реалізований у вигляді Юнікод і ANSI версії на Windows NT.
Повідомлення та повідомлення черги огляд, повідомлення та функції черги повідомлень, IsChild, MSG, PeekMessage, PostMessage, PostThreadMessage, WaitMessage