Системные сообщения

Система высылает системные сообщения для установки связи с приложением. Эти сообщения используются для контроля над приложением, предоставления ему входящих данных и другой информации. Приложение, в свою очередь, тоже может генерировать системные сообщения. В основном приложения используют эти сообщения для управления окнами, созданных на основе предопределенных классов.

Каждое системное сообщение имеет уникальный идентификатор и соответствующую ему символическую константу, которые определяют назначение сообщения. Например, символическая константа WM_PAINT является просьбой на перерисовку содержимого окна.

Префикс символической константы указывает на категорию, к которой принадлежит сообщение. Например:


BM_ элемент управления кнопка

CB_ элемент управления комбинированный список

EM_ элемент управления поле редактирования текста

LB_ элемент управления список

SBM_ элемент управления полоса прокрутки

WM_ оконные сообщения

и т. д.

Основные оконные сообщения покрывают собой широкий диапазон необходимой для работы приложения информации и различных запросов, включая ввод с мыши и клавиатуры, ввод из меню и диалогового окна, управление окном и динамическим обменом данных (DDE).

SendMessage() используется для отправки сообщения указанному окну используя дескриптор окна. SendDlgItemMessage() используется для отправки сообщения дочернему окну данного окна используя идентификатор (ID) ресурса окна. SendDlgItemMessage() наиболее часто используется в функциями диалогового окна, которые имеют дескриптор диалога, а не элемента управления дочернего окна.


Вызов SendDlgItemMessage()

SendDlgItemMessage (hwnd, id, msg, wParam, lParam)

эквивалентен следующему вызову SendMessage():

hwnd2 = GetDlgItem (hwnd, id); SendMessage (hwnd2, msg, wParam, lParam);

Функция SendMessage

Функция SendMessage отправляет заданное сообщение окну или окнам. Функция вызывает оконную процедуру для заданного окна и не возвращает значение до тех пор, пока оконная процедура не обработает сообщение.

Синтаксис

LRESULT SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam );

Параметры

HWnd

[in] Дескриптор окна, оконная процедура которого примет сообщение. Если этот параметр - HWND_BROADCAST, сообщение отправляется всем окнам верхнего уровня в системе, включая заблокированные или невидимые, не имеющие владельца, перекрывающие и выскакивающие окна; но сообщение не отправляется дочерним окнам.

Msg

[in] Определяет сообщение, которое будет отправлено.

wParam

[in] Определяет дополнительную конкретизирующую сообщение информацию.

lParam

[in] Определяет дополнительную конкретизирующую сообщение информацию.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: