Система высылает системные сообщения для установки связи с приложением. Эти сообщения используются для контроля над приложением, предоставления ему входящих данных и другой информации. Приложение, в свою очередь, тоже может генерировать системные сообщения. В основном приложения используют эти сообщения для управления окнами, созданных на основе предопределенных классов.
Каждое системное сообщение имеет уникальный идентификатор и соответствующую ему символическую константу, которые определяют назначение сообщения. Например, символическая константа WM_PAINT является просьбой на перерисовку содержимого окна.
Префикс символической константы указывает на категорию, к которой принадлежит сообщение. Например:
BM_ элемент управления кнопка
CB_ элемент управления комбинированный список
EM_ элемент управления поле редактирования текста
LB_ элемент управления список
SBM_ элемент управления полоса прокрутки
WM_ оконные сообщения
и т. д.
Основные оконные сообщения покрывают собой широкий диапазон необходимой для работы приложения информации и различных запросов, включая ввод с мыши и клавиатуры, ввод из меню и диалогового окна, управление окном и динамическим обменом данных (DDE).
|
|
SendMessage() используется для отправки сообщения указанному окну используя дескриптор окна. SendDlgItemMessage() используется для отправки сообщения дочернему окну данного окна используя идентификатор (ID) ресурса окна. SendDlgItemMessage() наиболее часто используется в функциями диалогового окна, которые имеют дескриптор диалога, а не элемента управления дочернего окна.
Вызов SendDlgItemMessage()
эквивалентен следующему вызову 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] Определяет дополнительную конкретизирующую сообщение информацию.