- •Приложение а Сообщения и макросы
- •Приложение б Идентификация курсоров, значков, панелей инструментов, клавиш
- •Идентификаторы стандартных команд меню Edit
- •Приложение в Обьекты графического интерфейса
- •Стандартные значения основных атрибутов рисования
- •Алфавитный указатель
- •Татьяна Владимировна Ковалюк Объектно-ориентированное программирование
- •Издается в авторской редакции
- •Формат бумаги 6084 1/16
создать объект кисть класса CBrush, выбрать ее в объекте контекста устройства и сохранить предыдущий выбранный объект с помощью функции CDC::SelectObject().
Стандартное перо или кисть выбирается при вызове функции CDC::SelectStockObject().
Удаление объектов пера и кисти из объектов контекста устройства выполняется функцией CDC::SelectObject(), вызов которой обеспечивает возврат к предыдущему перу или кисти.
Для рисования линий, используйте функции CDC::MoveTo(), CDC::LineTo(), CDC::Arc(), CDC::PolyBezier(), CDC::Polyline().
Для рисования замкнутых фигур, таких как прямоугольники, эллипсы, сегменты, сектора, многоугольника используйте функции CDC::Rectangle(), CDC::Ellipse(), CDC::Chord(), CDC::Pie(), CDC::Polygon().
Заливка выполняется для замкнутых фигур. Для выполнения заливки достаточно выбрать объект кисть в объекте контекста устройства или вызвать функции CDC::FloodFill(), CDC::FillRect(), CDC::InvertRect().
Для рисования мышью фигур необходимо обработывать сообщения, генерируемые при нажатии, отпускании кнопки мыши и ее перемещении. Для этого разработайте соответствующие коды функций OnLButtonDown(), OnLButtonUp() и OnMouseMove() класса представления.
При перемещении мыши код функции OnMouseMove() класса представления удаляет прежнюю временную фигуру, а затем перерисовывает новую с текущей позиции мыши. Временная фигура отмечает место, где будет нарисована постоянная фигура, если пользователь отпустит кнопку мыши.
При отпускании кнопки мыши код функции OnLButtonUp() класса представления удаляет временную фигуру, а затем рисует новую постоянную фигуру.
Приложение а Сообщения и макросы
В этом приложении дается краткая информация об идентификации сообщений Windows, обработчиках командных и уведомляющих сообщений. Приводятся прототипы макросов, используемых в картах сообщений. Информация, представленная в этом приложении, используется пользователем при добавлении в приложения обработчиков различных сообщений.
Существует три категории сообщений:
Сообщения Windows (Windows messages), которые начинаются с префикса WM_ за исключением WM_COMMAND.
Уведомляющие сообщения (Control notifications) включают сообщения WM_COMMAND, посылаемые от элементов управления и других дочерних окон своим родительским окнам.
Командные сообщения (Command messages) включают уведомляющие сообщения WM_COMMAND (WM_COMMAND notification messages) от объектов пользовательского интерфейса: меню, кнопок панели инструментов и клавиш-акселераторов.
Сообщения Windows и уведомляющие сообщения обрабатываются окнами и представлениями, т.е. объектами классов СWnd, CFrameWnd, CMDIFrameWnd, CMDIChildWnd, CView, CDialog и классами пользователя, порожденными этими классами.
Командные сообщения обрабатываются документами, их шаблонами, объектом приложения, а также окнами и представлениями.
Т а б л и ц а А1
Идентификаторы некоторых сообщений Windows и уведомляющих сообщений (Windows Messages and Control-Notification Messages)
Идентификатор сообщения |
Причина возникновения сообщения (тип события) |
WM_ACTIVATE |
Активизировано окно |
WM_ACTIVATEAPP |
Активизировано окно, принадлежащее другому приложению |
WM_CANCELMODE |
Отменен некоторый режим, например, передача сообщения от мыши |
WM_CHAR |
В результате трансляции сообщения WM_KEYDOWN определяется код символа, клавиша которого была нажата |
WM_CHILDACTIVATE |
Активизировано дочернее окно |
WM_CLOSE |
Закрыть окно |
WM_CONTEXTMENU |
Уведомление окна о том, что в окне нажата правая кнопка мыши |
WM_COPYDATA |
Передача данных от одного приложения другому |
Продолжение табл. 1А
Идентификатор сообщения |
Причина возникновения сообщения (тип события) |
WM_CREATE |
Создать окно посредством вызова ::CreateWindow() |
WM_DEADCHAR |
Посылается сообщение WM_DEADCHAR в результате трансляции сообщения WM_KEYDUP |
WM_DELETEITEM |
Система посылает сообщение при удалении каждого элемента управления |
WM_DESTROY |
Уничтожено окно |
WM_ENABLE |
Заблокировано или разблокировано окно |
WM_ENDSESSION |
Завершен сеанс работы |
WM_GETMINMAXINFO |
Получить информацию о размерах окна |
WM_HELP |
Посылается активному окну в случае, если нажата клавиша F1 |
WM_HSCROLL |
Выполнена горизонтальная прокрутка в окне |
WM_INITDIALOG |
Инициализировать элементы управления диалогового окна перед его отображением |
WM_INITMENU |
Инициализировать меню перед его отображением |
WM_INITMENUPOPUP |
Инициализировать ниспадающее меню перед его отображением |
WM_KEYDOWN |
Посылается активному окну, когда нажата несистемная клавиша на клавиатуре . Несистемная клавиша не нажимается одновременно с Alt |
WM_KEYUP |
Посылается активному окну, когда отпущена несистемная клавиша |
WM_KILLFOCUS |
Посылается окну перед потерей им фокуса ввода |
WM_LBUTTONDBLCLK |
Двойной щелчок левой кнопкой мыши, когда курсор в клиентской области окна |
WM_LBUTTONDOWN |
Нажата левая кнопка мыши, когда курсор в клиентской области окна |
WM_LBUTTONUP |
Отпущена левая кнопка мыши, когда курсор в клиентской области окна |
WM_MBUTTONDBLCLK |
Двойной щелчок средней кнопкой мыши, когда курсор в клиентской области окна |
WM_MBUTTONDOWN |
Нажата средняя кнопка мыши, когда курсор в клиентской области окна |
WM_MBUTTONUP |
Отпущена средняя кнопка мыши, когда курсор в клиентской области окна |
WM_MOUSEMOVE |
Переместить мышь |
WM_MDIACTIVATE |
Приложение посылает сообщение клиенту MDI для активизации дочернего окна |
WM_MDICASCADE |
Приложение посылает сообщение клиенту MDI для расположения окон каскадом |
WM_MDICREATE |
Приложение посылает сообщение клиенту MDI для создания дочернего окна |
WM_MDIDESTROY |
Приложение посылает сообщение клиенту MDI для закрытия дочернего окна |
WM_MDIMAXIMIZE |
Приложение посылает сообщение клиенту MDI для максимизации дочернего окна |
Окончание табл. 1А
Идентификатор сообщения |
Причина возникновения сообщения (тип события) |
WM_MDINEXT |
Приложение посылает сообщение клиенту MDI для активизации следующего или предыдущего дочернего окна |
WM_MDIRESTORE |
Приложение посылает сообщение клиенту MDI для восстановления дочернего окна в прежних размерах |
WM_MDITILE |
Приложение посылает сообщение клиенту MDI для расположения окон в мозаичном формате |
WM_MENUSELECT |
Выбрана команда меню |
WM_MOUSEMOVE |
Посылается окну, которое содержит курсор при его перемещении |
WM_MOVE |
Окно изменило положение |
WM_PAINT |
Приложение посылает сообщение, когда требуется перерисовать часть его окна |
WM_PRINT |
Посылается окну, чтобы вывести изображение в контексте устройства принтера |
WM_QUERYOPEN |
Сообщение посылается значку, когда требуется восстановить окно в прежних размерах |
WM_QUIT |
Завершить работу приложения |
WM_RBUTTONDBLCLK |
Двойной щелчок правой кнопкой мыши, когда курсор в клиентской области окна |
WM_RBUTTONDOWN |
Нажата правая кнопка мыши, когда курсор в клиентской области окна |
WM_RBUTTONUP |
Отпущена правая кнопка мыши, когда курсор в клиентской области окна |
WM_SETCURSOR |
Сообщение посылается окну, если мышь перемещает курсор в пределах окна |
WM_SETFOCUS |
Окно получает фокус ввода |
WM_SETFONT |
Приложение посылает сообщение, чтобы определить шрифт для вывода текста |
WM_SETICON |
Приложение посылает сообщение для ассоциации с окном большого или малого значка |
WM_SETTEXT |
Задать текст в заголовке окна |
WM_SHOWWINDOW |
Скрыть окно или вывести на экран |
WM_SIZE |
Изменились размеры окна |
WM_SYSCHAR |
В результате трансляции сообщения WM_KEYDOWN определяется код символа, системная клавиша (Alt+клавиша) которого была нажата |
WM_SYSCOMMAND |
Выбор команды системного меню |
WM_SYSKEYDOWN |
Посылается активному окну, когда пользователь нажимает F10 или Alt+клавишу |
WM_SYSKEYUP |
Посылается активному окну, когда пользователь отпускает F10 или Alt+клавишу |
WM_TIMER |
Запустить таймер |
WM_VSCROLL |
Выполнена вертикальная прокрутка в окне |
Каждое генерируемое в системе сообщение должно быть обработано соответствующей функцией-обработчиком. Чтобы сопоставить сообщению его обработчик используются макросы, которые записывают в карту сообщений. Категории макросов, используемые в картах сообщений, приведены в табл. Б2. В качестве параметров некоторых макросов используются идентификатор сообщения (id) и функция-член класса, в котором это сообщение обрабатывается (memberFxn).
Т а б л и ц а А2
Категории макросов карты сообщений
Идентификатор макроса |
Назначение |
DECLARE_MESSAGE_MAP() |
Объявление карты сообщений в интерфейсе класса |
BEGIN_MESSAGE_MAP ( theClass, baseClass ) |
Начало определения карты сообщений в реализации класса. Параметры: имя класса, имя базового класса |
END_MESSAGE_MAP() |
Конец объявления карты сообщений в реализации класса |
ON_COMMAND ( id, memberFxn ) |
Определение метода, с помощью которого обрабатывается командное сообщение. Параметры: идентификатор команды, имя функции. |
ON_UPDATE_COMMAND_UI ( id, memberFxn ) |
Определение метода, с помощью которого выполняется обновление для команд пользовательского интерфейса. Параметры: идентификатор команды, имя функции. |
ON_CONTROL( wNotifyCode, id, memberFxn ) |
Определение метода, с помощью которого обрабатывается контрольное уведомляющее сообщение от дочернего окна. Параметры: код сообщения, идентификатор команды, имя функции. |
ON_MESSAGE( message, memberFxn ) |
Определение метода, с помощью которого обрабатывается созданное пользователем сообщение. Параметры: идентификатор сообщения, имя функции. |
ON_NOTIFY( wNotifyCode, id, memberFxn ) |
Определение метода класса, с помощью которого обрабатывается уведомляющее сообщение от элемента управления. Параметры: код сообщения, идентификатор элемента управления, имя функции. |
ON_REGISTERED_MESSAGE ( nMessageVariable, memberFxn ) |
Определение метода для регистрации нового сообщения |
Для оконных сообщений класс CWnd имеет методы, обрабатывающие эти сообщения. Прототипы некоторых обработчиков и макросы, которые генерируются мастером добавления функций, приведены в табл. Б3.
Т а б л и ц а А3
Некоторые обработчики оконных сообщений (Windows messages)
Идентификатор сообщения |
Макрос карты сообщений |
Прототип функции-обработчика |
WM_ACTIVATE |
ON_WM_ACTIVATE() |
afx_msg void OnActivate(UINT, CWnd*, BOOL); |
WM_ACTIVATEAPP |
ON_WM_ACTIVATEAPP() |
afx_msg void OnActivateApp(BOOL, HTASK); |
WM_CANCELMODE |
ON_WM_CANCELMODE() |
afx_msg void OnCancelMode(); |
WM_CHAR |
ON_WM_CHAR() |
afx_msg void OnChar(UINT, UINT, UINT); |
WM_CHILDACTIVATE |
ON_WM_CHILDACTIVATE() |
afx_msg void OnChildActivate(); |
WM_CLOSE |
ON_WM_CLOSE() |
afx_msg void OnClose(); |
WM_CONTEXTMENU |
ON_WM_CONTEXTMENU() |
afx_msg void OnContextMenu(CWnd*, CPoint); |
WM_COPYDATA |
ON_WM_COPYDATA() |
afx_msg BOOL OnCopyData(CWnd*, COPYDATASTRUCT*); |
WM_CREATE |
ON_WM_CREATE() |
afx_msg int OnCreate(LPCREATESTRUCT); |
WM_DEADCHAR |
ON_WM_DEADCHAR() |
afx_msg void OnDeadChar(UINT, UINT, UINT); |
WM_DELETEITEM |
ON_WM_DELETEITEM() |
afx_msg void OnDeleteItem(int, LPDELETEITEMSTRUCT); |
WM_DESTROY |
ON_WM_DESTROY() |
afx_msg void OnDestroy(); |
WM_ENABLE |
ON_WM_ENABLE() |
afx_msg void OnEnable(BOOL); |
WM_ENDSESSION |
ON_WM_ENDSESSION() |
afx_msg void OnEndSession(BOOL); |
WM_GETMINMAXINFO |
ON_WM_GETMINMAXINFO() |
afx_msg void OnGetMinMaxInfo (MINMAXINFO*); |
WM_HELP |
ON_WM_HELPINFO() |
afx_msg BOOL OnHelpInfo(HELPINFO*); |
WM_HSCROLL |
ON_WM_HSCROLL() |
afx_msg void OnHScroll(UINT, UINT, CScrollBar*); |
WM_INITDIALOG |
отсутствует |
virtual BOOL CDialog::OnInitDialog( ); |
WM_INITMENU |
ON_WM_INITMENU() |
afx_msg void OnInitMenu(CMenu*); |
Продолжение табл.А3
Идентификатор сообщения |
Макрос карты сообщений |
Прототип функции-обработчика |
WM_INITMENUPOPUP |
ON_WM_INITMENUPOPUP() |
afx_msg void OnInitMenuPopup(CMenu*, UINT, BOOL); |
WM_KEYDOWN |
ON_WM_KEYDOWN() |
afx_msg void OnKeyDown(UINT, UINT, UINT); |
WM_KEYUP |
ON_WM_KEYUP() |
afx_msg void OnKeyUp(UINT, UINT, UINT); |
WM_KILLFOCUS |
ON_WM_KILLFOCUS() |
afx_msg void OnKillFocus(CWnd*); |
WM_LBUTTONDBLCLK |
ON_WM_LBUTTONDBLCLK() |
afx_msg void OnLButtonDblClk(UINT, CPoint); |
WM_LBUTTONDOWN |
ON_WM_LBUTTONDOWN() |
afx_msg void OnLButtonDown(UINT, CPoint); |
WM_LBUTTONUP |
ON_WM_LBUTTONUP() |
afx_msg void OnLButtonUp(UINT, CPoint); |
WM_MBUTTONDBLCLK |
ON_WM_MBUTTONDBLCLK() |
afx_msg void OnMButtonDblClk(UINT, CPoint); |
WM_MBUTTONDOWN |
ON_WM_MBUTTONDOWN() |
afx_msg void OnMButtonDown(UINT, CPoint); |
WM_MBUTTONUP() |
ON_WM_MBUTTONUP() |
afx_msg void OnMButtonUp(UINT, CPoint); |
WM_MDIACTIVATE |
ON_WM_MDIACTIVATE() |
afx_msg void OnMDIActivate(BOOL, CWnd*, CWnd*); |
WM_MENUSELECT |
ON_WM_MENUSELECT() |
afx_msg void OnMenuSelect(UINT, UINT, HMENU); |
WM_MOUSEMOVE |
ON_WM_MOUSEMOVE() |
afx_msg void OnMouseMove(UINT, CPoint); |
WM_MOVE |
ON_WM_MOVE() |
afx_msg void OnMove (int, int); |
WM_PAINT |
ON_WM_PAINT() |
afx_msg void OnPaint(); |
WM_QUERYOPEN |
ON_WM_QUERYOPEN() |
afx_msg BOOL OnQueryOpen(); |
WM_RBUTTONDBLCLK |
ON_WM_RBUTTONDBLCLK() |
afx_msg void OnRButtonDblClk(UINT, CPoint); |
WM_RBUTTONDOWN |
ON_WM_RBUTTONDOWN() |
afx_msg void OnRButtonDown(UINT, Cpoint); |
WM_RBUTTONUP |
ON_WM_RBUTTONUP() |
afx_msg void OnRButtonUp(UINT, Cpoint); |
WM_SETCURSOR |
ON_WM_SETCURSOR() |
afx_msg BOOL OnSetCursor(CWnd*, UINT, UINT); |
Окончание табл.А3
Идентификатор сообщения |
Макрос карты сообщений |
Прототип функции-обработчика |
WM_SETFOCUS |
ON_WM_SETFOCUS() |
afx_msg void OnSetFocus(CWnd*); |
WM_SHOWWINDOW |
ON_WM_SHOWWINDOW() |
afx_msg void OnShowWindow(BOOL, UINT); |
WM_SIZE |
ON_WM_SIZE() |
afx_msg void OnSize(UINT, int, int); |
WM_SYSCHAR |
ON_WM_SYSCHAR() |
afx_msg void OnSysChar(UINT, UINT, UINT); |
WM_SYSCOMMAND |
ON_WM_SYSCOMMAND() |
afx_msg void OnSysCommand(UINT, LPARAM); |
WM_SYSDEADCHAR |
ON_WM_SYSDEADCHAR() |
afx_msg void OnSysDeadChar(UINT, UINT, UINT); |
WM_SYSKEYDOWN |
ON_WM_SYSKEYDOWN() |
afx_msg void OnSysKeyDown(UINT, UINT, UINT); |
WM_SYSKEYUP |
ON_WM_SYSKEYUP() |
afx_msg void OnSysKeyUp(UINT, UINT, UINT); |
WM_TIMER |
ON_WM_TIMER() |
afx_msg void OnTimer(UINT); |
WM_VSCROLL |
ON_WM_VSCROLL() |
afx_msg void OnVScroll(UINT, UINT, CScrollBar*); |
Для обработки командных сообщений пользователь должен добавить в соответствующий класс функции-члены. Прототип функции зависит от макроса, который будет добавлен в карту сообщений. В табл. Б4 приведены макросы и обработчики командных сообщений и обновлений команд.
Т а б л и ц а А4
Макросы и обработчики командных сообщений WM_COMMAND и обновлений пользовательского интерфейса
Макрос карты сообщений |
Прототип функции-обработчика |
ON_COMMAND(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
ON_COMMAND_EX(<id>, <memberFxn>) |
afx_msg BOOL memberFxn(UINT); |
ON_COMMAND_EX_RANGE(<id>, <idLast>, <memberFxn>) |
afx_msg BOOL memberFxn(UINT); |
ON_COMMAND_RANGE(<id>, <idLast>, <memberFxn>) |
afx_msg void memberFxn(UINT); |
ON_UPDATE_COMMAND_UI(<id>, <memberFxn>) |
afx_msg void memberFxn(CCmdUI*); |
ON_UPDATE_COMMAND_UI_RANGE (<id>, <idLast>, <memberFxn>) |
afx_msg void memberFxn(CCmdUI*); |
ON_UPDATE_COMMAND_UI_REFLECT (<memberFxn>) |
afx_msg void memberFxn(CCmdUI*); |
Источником сообщений могут быть любые оконные объекты: кнопка, диалоговое окно, поле ввода, комбинированный список и т.д. Как распознать, какое окно получает или порождает сообщение, показано в табл. Б5.
Т а б л и ц а А5
Префиксы некоторых идентификаторов сообщений и типы окон
Префикс идентификатора сообщения, поступающего объекту |
Префикс идентификатора сообщения, поступающего от объекта |
Тип объекта (тип окна) |
BM |
BN |
Кнопка |
CB |
CBN |
Комбинированный список |
DM |
|
Диалоговое окно |
EM |
EN |
Поле ввода |
HDM |
HDN |
Заголовок окна |
LB |
LBN |
Список |
NM |
|
Родительское окно |
PBM |
|
Индикатор процесса |
PSM, PSN |
|
Вкладка свойств |
SB |
|
Строка состояния |
SBM |
|
Полоса прокрутки |
STM |
STN |
Статический элемент управления |
TB |
TBN |
Панель инструментов |
TBM |
|
Ползунок |
TCM, |
TCN |
Вкладка |
TTM |
TTN |
Подсказка |
WM |
|
Обобщенное окно |
Дочерние объекты своим владельцам посылают уведомляющие сообщения, которые можно классифицировать по типам объектов. В табл. Б6 приведены идентификаторы некоторых уведомляющих сообщений и их обработчики.
Т а б л и ц а А6
Идентификаторы уведомляющих сообщений от дочерних объектов и их обработчики
Идентификатор сообщения |
Макрос карты сообщений |
Прототип функции |
Контрольные уведомляющие сообщения (Control Notification Messages) |
||
WM_NOTIFY |
ON_CONTROL(<wNotifyCode>, <id>, <memberFxn>) |
afx_msg void memberFxn(); |
WM_NOTIFY |
ON_CONTROL_RANGE(<wNotifyCode>, <id> <idLast>, <memberFxn>) |
afx_msg void memberFxn(UINT); |
WM_NOTIFY |
ON_CONTROL_REFLECT(<wNotifyCode>, <memberFxn>) |
afx_msg void memberFxn(); |
WM_NOTIFY |
ON_CONTROL_REFLECT_EX(<wNotifyCode>, <memberFxn>) |
afx_msg BOOL memberFxn(); |
WM_NOTIFY |
ON_NOTIFY(<wNotifyCode>, <id>, <memberFxn>) |
afx_msg void memberFxn(NMHDR*, LRESULT*); |
WM_NOTIFY |
ON_NOTIFY_EX(<wNotifyCode>, <id>, <memberFxn>) |
afx_msg BOOL memberFxn(UINT, NMHDR*, LRESULT*); |
WM_NOTIFY |
ON_NOTIFY_EX_RANGE(<wNotifyCode>, <id>, <idLast>, <memberFxn>) |
afx_msg BOOL memberFxn(UINT, NMHDR*, LRESULT*); |
WM_NOTIFY |
ON_NOTIFY_RANGE(<wNotifyCode>, <id>, <idLast>, <memberFxn>) |
afx_msg void memberFxn(UINT, NMHDR*, LRESULT*); |
WM_NOTIFY |
ON_NOTIFY_REFLECT(<wNotifyCode>, <memberFxn>) |
afx_msg void memberFxn(NMHDR*, LRESULT*); |
WM_NOTIFY |
ON_NOTIFY_REFLECT_EX(<wNotifyCode>, <memberFxn>) |
afx_msg BOOL memberFxn(NMHDR*, LRESULT*); |
Некоторые уведомляющие сообщения от кнопок (User Button Notification Codes) |
||
BN_CLICKED |
ON_BN_CLICKED(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
BN_DBLCLK BN_DOUBLECLICKED |
ON_BN_DOUBLECLICKED(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
BN_KILLFOCUS |
ON_BN_KILLFOCUS(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
BN_SETFOCUS |
ON_BN_SETFOCUS(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
Уведомляющие сообщения от комбинированных списков (Combo Box Notification Codes) |
||
CBN_CLOSEUP |
ON_CBN_CLOSEUP(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
CBN_DBLCLK |
ON_CBN_DBLCLK(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
Продолжение табл. А6
Идентификатор сообщения |
Макрос карты сообщений |
Прототип функции |
|
CBN_DROPDOWN |
ON_CBN_DROPDOWN(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
CBN_EDITCHANGE |
ON_CBN_EDITCHANGE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
CBN_EDITUPDATE |
ON_CBN_EDITUPDATE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
CBN_ERRSPACE |
ON_CBN_ERRSPACE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
CBN_KILLFOCUS |
ON_CBN_KILLFOCUS(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
CBN_SELCHANGE |
ON_CBN_SELCHANGE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
CBN_SELENDCANCEL |
ON_CBN_SELENDCANCEL(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
CBN_SELENDOK |
ON_CBN_SELENDOK(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
CBN_SETFOCUS |
ON_CBN_SETFOCUS(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
Некоторые уведомляющие сообщения от поля ввода (Edit Control Notification Codes) |
|||
EN_CHANGE |
ON_EN_CHANGE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
EN_ERRSPACE |
ON_EN_ERRSPACE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
EN_HSCROLL |
ON_EN_HSCROLL(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
EN_KILLFOCUS |
ON_EN_KILLFOCUS(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
EN_MAXTEXT |
ON_EN_MAXTEXT(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
EN_SETFOCUS |
ON_EN_SETFOCUS(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
EN_UPDATE |
ON_EN_UPDATE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
EN_VSCROLL |
ON_EN_VSCROLL(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
Уведомляющие сообщения от списков (List Box Notification Codes) |
|||
LBN_DBLCLK |
ON_LBN_DBLCLK(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
|
LBN_ERRSPACE |
ON_LBN_ERRSPACE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
Окончание табл. А6
Идентификатор сообщения |
Макрос карты сообщений |
Прототип функции |
LBN_KILLFOCUS(< |
ON_LBN_KILLFOCUS(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
LBN_SELCANCEL |
ON_LBN_SELCANCEL(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
LBN_SELCHANGE |
ON_LBN_SELCHANGE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
LBN_SETFOCUS |
ON_LBN_SETFOCUS(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
Уведомляющие сообщения от статических элементов (Static Control Notification Codes) |
||
STN_CLICKED |
ON_STN_CLICKED(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
STN_DBLCLK |
ON_STN_DBLCLK(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
STN_DISABLE |
ON_STN_DISABLE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
STN_ENABLE |
ON_STN_ENABLE(<id>, <memberFxn>) |
afx_msg void memberFxn(); |
Т а б л и ц а А7
Битовые маски для доступа к битам параметра nFlags, передаваемого обработчикам сообщений от мыши
Битовая маска |
Содержание бита устанавливается, если нажата |
MK_CONTROL |
клавиша Ctrl |
MK_LBUTTON |
левая кнопка мыши |
MK_MBUTTON |
средняя кнопка мыши |
MK_RBUTTON |
правая кнопка мыши |
MK_SHIFT |
клавиша Shift |
Т а б л и ц а А8
Значение аргумента nCmdShow, передаваемого в функцию СWnd::ShowWindow() для установки режима отображения окна
Значение nCmdShow |
Описание |
SW_SHOWMAXIMIZED |
Максимизировать и активизировать окно при запуске программы |
SW_SHOWMINIMIZSD |
Минимизировать окно при запуске программы, фокус остается в окне |
SW_SHOWNORMAL |
Окно обычных размеров |
SW_HIDE |
Срыть окно при запуске |
Окончание табл. А8
Значение nCmdShow |
Описание |
SW_NORMAL |
Активировать и показать окно текущего размера в текущем положении. |
SW_SHOWNOACTIVATE |
Показать окно, но не активизировать |
SW_SHOW |
Показать окно текущего размера в текущем положении. |
SW_MINIMIZE |
Свернуть окно и активировать верхнее окно списка. |
SW_MAXIMIZE |
Развернуть окно и активизировать верхнее окно списка |
SW_SHOWMINNOACTIVE |
Окно минимизировано |
SW_SHOWNA |
Показать окно без изменений. |