На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

GetMessage



The GetMessage function retrieves a message from the calling thread's message queue and places it in the specified structure. This function can retrieve both messages associated with a specified window and thread messages posted via the PostThreadMessage function. The function retrieves messages that lie within a specified range of message values. GetMessage does not retrieve messages for windows that belong to other threads or applications.

BOOL GetMessage(

LPMSG lpMsg, // address of structure with message
HWND hWnd, // handle of window
UINT wMsgFilterMin, // first message
UINT wMsgFilterMax // last message
);


Parameters

lpMsg

Points to an MSG structure that receives message information from the thread's message queue.

hWnd

Identifies the window whose messages are to be retrieved. One value has a special meaning:

Value Meaning
NULL GetMessage retrieves messages for any window that belongs to the calling thread and thread messages posted to the calling thread via PostThreadMessage.


wMsgFilterMin

Specifies the integer value of the lowest message value to be retrieved.

wMsgFilterMax

Specifies the integer value of the highest message value to be retrieved.



Return Values

If the function retrieves a message other than WM_QUIT, the return value is nonzero.
If the function retrieves the WM_QUIT message, the return value is zero.
If there is an error, the return value is -1. For example, the function fails if hWnd is an invalid window handle.

Remarks

An application typically uses the return value to determine whether to end the main message loop and exit the program.
The GetMessage function only retrieves messages associated with the window identified by the hWnd parameter or any of its children as specified by the IsChild function, and within the range of message values given by the wMsgFilterMin and wMsgFilterMax parameters. If hWnd is NULL, GetMessage retrieves messages for any window that belongs to the calling thread and thread messages posted to the calling thread via PostThreadMessage. GetMessage does not retrieve messages for windows that belong to other threads nor for threads other than the calling thread. Thread messages, posted by the PostThreadmessage function, have a message hWnd value of NULL. If wMsgFilterMin and wMsgFilterMax are both zero, GetMessage returns all available messages (that is, no range filtering is performed).

The WM_KEYFIRST and WM_KEYLAST constants can be used as filter values to retrieve all messages related to keyboard input; the WM_MOUSEFIRST and WM_MOUSELAST constants can be used to retrieve all mouse messages. If the wMsgFilterMin and wMsgFilterMax parameters are both zero, the GetMessage function returns all available messages (that is, without performing any filtering).
GetMessage does not remove WM_PAINT messages from the queue. The messages remain in the queue until processed.

Note that the function return value can be TRUE, FALSE, or -1. Thus, you should avoid code like this:

while (GetMessage( lpMsg, hWnd, 0, 0)) ...


The possibility of a -1 return value means that such code can lead to fatal application errors.

See Also

IsChild, MSG, PeekMessage, PostMessage, PostThreadMessage, WaitMessage


Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

GetMessage



Функция GetMessage извлекает сообщение из очереди сообщения резьбы разговора и устанавливает это в определенной структуре. Эта функция может извлечь как сообщения связывался определенным окном так и сообщениями резьбы объявленными через функцию PostThreadMessage. Функция извлекает сообщения, которые лежат в пределах определенного дипазона величин сообщения. GetMessage НЕ извлекает сообщения для окна, которое принадлежит другой резьбе или приложениям.

BOOL GetMessage(

LPMSG lpMsg, // АДРЕС структуры с сообщением HWND hWnd, // ручкой окна UINT wMsgFilterMin, // первого последнего сообщения сообщения UINT wMsgFilterMax //
);


Параметры

lpMsg

Точки на структуру MSG, которые получают информацию сообщения из очереди сообщения резьбы.

hWnd

Идентифицирует окно, чьи сообщения должны быть извлечены. Одна величина имеет специальное значение:

Значение Величины
НЕДЕЙСТВИТЕЛЬНЫЙ GetMessage извлекает сообщения для любого окна, которое принадлежит разговору резьбы и сообщений резьбы объявленным в разговор резьбы через PostThreadMessage.


wMsgFilterMin

Определяет величину целого самой низкой величины сообщения, чтобы быть извлеченн.

wMsgFilterMax

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



Обратные Величины

Если функция извлекает сообщение кроме WM_QUIT, обратная величина ненулевая.
Если функция извлекает сообщение WM_QUIT, обратная величина нулевая.
Если есть ошибка, обратная величина - -1. Например, функция терпит неудачу если hWnd - неправильная ручка окна.

Замечания

Приложение обычно использует обратную величину, чтобы определять заканчивать основной цикл сообщения и выходить из программы.
Функция GetMessage только извлекает сообщения связанные окном идентифицированным параметром hWnd или любое из своих детей как определено функцией IsChild, и в диапазоне величин сообщения данных wMsgFilterMin и параметрами wMsgFilterMax. Если hWnd НЕДЕЙСТВИТЕЛЕН, GetMessage извлекает сообщения для любого окна, которое принадлежит разговору резьбы и сообщений резьбы объявленным в разговор резьбы через PostThreadMessage. GetMessage НЕ извлекает сообщения для окна, которое принадлежит другой резьбе ни для резьбы кроме разговора резьбы. Сообщения Резьбы, объявлялись функцией PostThreadmessage, имеют величину сообщения hWnd НЕДЕЙСТВИТЕЛЬНОГО. Если wMsgFilterMin и wMsgFilterMax - оба нуля, GetMessage возвращает все доступные сообщения (то есть, никакая фильтрация дипазона не выполнена).

WM_KEYFIRST И константы WM_KEYLAST могут быть использованы как величины фильтра, чтобы извлекать все сообщения имело отношение к вводу данных с клавиатуры; WM_MOUSEFIRST и константы WM_MOUSELAST могут быть использованы, чтобы извлекать все сообщения мыши. Если wMsgFilterMin и параметры wMsgFilterMax - оба нуля, функциональный возврат GetMessage всех доступных сообщений (то есть, не выполняя любую фильтрацию).
GetMessage НЕ удаляет сообщения WM_PAINT из очереди. Сообщения остаются в очереди пока не обрабатывался.

Отметьте, что функциональная обратная величина может быть ИСТИНОЙ, ЛОЖЬЮ, или -1. Таким образом, Вы должны избегать кода подобно этому:

пока (GetMessage( lpMsg, hWnd, 0, 0))...


Возможность -1 обратная величина означает, что такой код может провести к фатальным прикладным ошибкам.

Смотри Также

IsChild, MSG, PeekMessage, PostMessage, PostThreadMessage, WaitMessage


Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz