Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
401-432.doc
Скачиваний:
2
Добавлен:
11.11.2019
Размер:
668.67 Кб
Скачать

430

создать объект кисть класса 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

Показать окно без изменений.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]