Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

SendMessage, PostMessage и Perform

CuBook15

Функция SendMessage посылает указанное в ней сообщение окну или множеству окон и не возвращается, пока это сообщение обрабатывается. Этим она отличается от функции PostMessage, которая возвращается сразу после передачи сообщения.
Объявление функции SendMessage:
Int SendMessage(HWnd hWnd, unsigned int Msg, WPARAM wParam, LPARAM lParam);
Параметр hWnd - дескриптор окна, которому передается сообщение. Если этот параметр равен HWND_BROADCAST, то сообщение передается всем окнам верхнего уровня в системе, включая недоступные и невидимые, кроме дочерних.
 
Параметр Msg определяет передаваемое сообщение. Параметры wParam и IParam могут содержать дополнительную информацию. Значение, возвращаемое функцией, зависит от вида сообщения.
Функции PostMessage объявлена следующим образом:
bool PostMessage(HWND hWnd, unsigned int Msg, WPARAM wParam, LPARAM IParam);
Эта функция похожа на SendMessage, но в отличие от нее она помещает сообщение в очередь и сразу возвращается. Таким образом, PostMessage не годится для передачи срочных сообщений, но зато она не блокирует вызвавшее приложение на время обработки сообщения приемником.
 
Параметры hWnd и Msg аналогичны для функции SendMessage. Если hWnd = NULL, то сообщение ставится в очередь сообщений (если она есть) текущего процесса.
 
Функция PostMessage возвращает ненулевое значение при успешном завершении и нуль в случае аварийного завершения. В этом случае причину ошибки можно установить вызовом функции GetLastError.
 
Имеется еще один метод, который может посылать сообщение непосредственно оконному компоненту.
Это метод Perform, объявление которого имеет вид:
Perform(unsigned int Msg, WPARAM wParam, LPARAM IParam);
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить