Операционная система Microsoft Windows 3.1 для программиста -том 2

Коды извещения


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

Младшее слово параметра lParam содержит идентификатор окна, полученный от функции CreateWindow при создании редактора.

Старшее слово параметра lParam содержит код извещения. Анализируя этот код, приложение может определить событие, послужившее причиной появления сообщения WM_COMMAND.

Приведем список кодов извещений.



Код извещения Описание
EN_CHANGE Изменилось содержимое текста в окне редактирования
EN_ERRSPACE Произошла ошибка при попытке получить дополнительную память
EN_HSCROLL Выполнена свертка текста по горизонтали. Пользователь использовал горизонтальную полосу просмотра для свертки текста, но изменения в окне редактирования еще не произошли
EN_KILLFOCUS Текстовый редактор потерял фокус ввода
EN_MAXTEXT При вводе очередного символа произошло переполнение, так как было превышен максимально допустимый для редактора размер текста
EN_SETFOCUS Текстовый редактор получил фокус ввода
EN_UPDATE Содержимое текстового редактора будет изменено. Пользователь ввел один символ текста или выполнил другую операцию редактирования, но выполнение этой операции еще не отразилось на содержимом окна редактирования. После этого извещения после отображения изменений придет извещение с кодом EN_CHANGE
EN_VSCROLL Выполнена свертка текста по вертикали. Пользователь использовал вертикальную полосу просмотра для свертки текста, но изменения в окне редактироания еще не произошли

Ваше приложение должно обрабатывать, по крайней мере, извещение с кодом EN_ERRSPACE, которое приходит в том случае, если редактор текста не смог заказать для себя дополнительную память.


Так же как редактор текста, список посылает в родительское окно сообщение WM_COMMAND (если он создан со стилем LBS_NOTIFY). Параметр wParam этого сообщения содержит идентификатор органа управления (в данном случае, идентификатор списка). Младшее слово параметра lParam содержит идентификатор окна списка, а старшее - код извещения.

Приведем список кодов извещения, поступающих от органа управления класса "listbox".

Код извещения Описание
LBN_DBLCLK Двойной щелчок левой клавишей мыши по строке списка
LBN_ERRSPACE Ошибка при попытке заказать дополнительную память
LBN_KILLFOCUS Список теряет фокус ввода
LBN_SELCANCEL Пользователь отменил выбор в списке. Это извещение используется в Windows версии 3.1 и более поздних версий
LBN_SELCHANGE Изменился номер выбранной строки (т. е. пользователь выбрал другую строку)
LBN_SETFOCUS Список получает фокус ввода




Список "combobox" посылает в родительское окно сообщение WM_COMMAND. Параметр wParam этого сообщения содержит идентификатор списка. Младшее слово параметра lParam содержит идентификатор окна списка, а старшее - код извещения.

Приведем список кодов извещения, поступающих от органа управления класса "combobox".

Код извещения Описание
CBN_CLOSEUP Список исчез (стал невидим)
CBN_DBLCLK Двойной щелчок левой клавишей мыши по строке списка, имеющего стиль CBS_SIMPLE
CBN_DROPDOWN Список стал видимым
CBN_EDITCHANGE Пользователь изменил содержимое окна редактирования, причем изменения уже отображены
CBN_EDITUPDATE Пользователь изменил содержимое окна редактирования, изменения еще не отображены
CBN_ERRSPACE Ошибка при попытке заказать дополнительную память
CBN_KILLFOCUS Список теряет фокус ввода
CBN_SELENDCANCEL Пользователь отменил выбор в списке.
CBN_SELENDOK Пользователь выбрал строку в списке.
CBN_SELCHANGE Изменился номер выбранной строки (т. е. пользователь выбрал другую строку)
CBN_SETFOCUS Список получает фокус ввода



Содержание раздела