Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
38
Добавлен:
16.02.2016
Размер:
544.77 Кб
Скачать

IpCreateStruct - структура createstruct, содержащая информацию о создаваемом объекте cWnd.

Отметим, что, переопределив этот метод, можно выполнить любую необходимую инициализацию производного класса. afxjnsg HBRUSH OnCtlColor (CDC* pDC, CWnd* pWnd, UINT nCtlColor);

Метод вызывается в том случае, когда дочерний элемент управления собирается рисовать. Большинство элементов управления посылают своим родительским окнам (как правило, диалоговым окнам) это сообщение, для того чтобы подготовить контекст устройства для рисования.

Метод возвращает указатель на кисть, используемую для рисования фона элемента управления.

Параметры:

pDC - указатель на контекст устройства для дочернего окна. р Wnd - указатель на элемент управления.

nCtlColor - флажок, специфицирующий тип элемента управления. Он может принимать одно из следующих значений: CTLCOLOR_BTN - элемент управления кнопка; CTLCOLOR_DLG - диалоговое окно;

CTLCOLOR_EDIT - элемент управления окно редактирования (Edit); CTLCOLOR_LISTBOX - элемент управления окно списка (Listbox); CTLCOLOR_MSGBOX - окно Messagebox; CTLCOLOR_SCROLLBAR - элемент управления линейка прокрутки

(Scrollbar); CTLCOLOR_STATIC - элемент управления Static.

Отметим, что для изменения цвета текста следует вызвать метод SetTextColor.

afx_msg void OnDestroy ();

Метод вызывается при разрушении окна. afxjnsg void OnEnable (BOOL ЬЕпаЫё);

Метод вызывается при изменении состояния окна на доступное или недоступное.

afx_msg void OnEndSession (BOOL bEnding);

Метод вызывается при завершении сеанса. afx_msg BOOL OnEraseBkgnd (CDC* pDQ;

Метод вызывается, когда необходимо очистить фон оконного объекта CWnd.

По умолчанию для очистки фона используется кисть, указываемая переменной класса hbrBackground.

afx_msg void OnKillFocus (CWnd* pNewWnd);

Метод вызывается при потере фокуса окном CWnd. Параметры:

pNewWnd - указатель окна, получившего фокус (может быть равен NULL).

afxjnsg LRESULT OnMenuChar (UINT nChar, UINT nFlags, CMenu* pMenu);

Метод вызывается при нажатии пользователем комбинации клавиш, не соответствующих какому-либо мнемоническому коду (так же и для комбинации с Alt). Старшие разряды слова возвращаемого значения, содержат один из следующих кодов:

0 - информирует Windows о пропуске нажатой пользователем клавиши и о

подаче звукового сигнала об ошибке;

1 - указывает Windows закрыть текущее меню;

2 - информирует Windows, что в младших разрядах возвращаемого значения содержится номер указанного пункта.

Параметры:

nChar - ASCII-код нажатой пользователем клавиши.

nFlags - флажок, содержащий значение MF_POPUP для указания рорuр-меню и значение MF_SYSMENU для указания системного меню. рМепи - указатель на выбранный объект CMenu.

Сообщение, обрабатываемое данным методом, посылается объекту CWnd, которому принадлежит это меню. afx_msg void OnMenuSelect (UINT nltemlD, UINT nFlags HMENU hSysMenu);

Метод вызывается при выборе пользователем указанного пункта меню.

Параметры:

nltemlD - ID выбранного пункта меню. nFlags - содержит комбинацию из одного или нескольких следующих флажков:

MF_BITMAP

MF_CHECKED

MF_DISABLED

MF_GRAYED

MF_MOUSESELECT

MF_OWNERDRAW

MF_POPUP

MF_SEPARATOR

MF_SYSMENU

hSysMenu - если параметр nFlags содержит MF_SYSMENU, то указывает меню, соответствующее обрабатываемому сообщению. Если же nFlags содержит MF_POPUP, то указывает дескриптор главного меню. Во всех других случаях этот параметр не используется.

Отметим, что если пользователь нажмет клавишу Esc (или щелкнет мышью вне области меню), то nFlags будет содержать значение OxFFFF, a hSysMenu - значение 0 и Windows закроет меню, afxjnsg void OnMove (int x, int y);

Метод вызывается при перемещении окна. Параметры указывают новые координаты левого верхнего угла. afx_msg void OnPaint ();

Метод вызывается для повторного вывода области окна.

Сообщение WM_PAINT, обрабатываемое данным методом, посылается при вызове методов UpdateWindow или RedrawWindow.

Отметим, что в том случае если вызов метода RedrawWindow был выполнен с флажком RDW_INTERNALPAINT, то окно может и не иметь поврежденной области. Для того чтобы определить, существует ли для данного окна поврежденная область, следует вызвать метод GetUpdateRect. Если этот метод возвращает значение 0, то приложение не должно вызывать методы BeginPaint и EndPaint.

afxjnsg void OnSetFocus (CWnd* pOldWnd);

Метод вызывается при получении окном фокуса. afx_msg void OnShowWindow (BOOL bShow, UINT nStatus);

Метод вызывается при отображении или скрытии окна.

Параметры:

bShow - при значении TRUE окно отображается, при FALSE - скрывается. nStatus - состояние отображаемого окна, определяемое одним из следующих значений: 0, SW_PARENTCLOSING, SW_PARENTOPENING.

afxjnsg void OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);

Метод вызывается при нажатии пользователем какой-либо клавиши (несистемный код).

Параметры:

nChar - виртуальный код данной клавиши.

nRepCnt - количество нажатий (как результат длительного нажатия клавиши). nFlags - флажок, определяющий в указанных разрядах скан-код, код расширения, предыдущее состояние клавиши и код контекста:

0-7 - скан-код (значение, зависимое от OEM).

8 - код расширения равен 1, если это функциональная клавиша или клавиша на keypad-клавиатуре.

13 - код контекста, равный 1, если одновременно нажата клавиша Alt, в противном случае - 0.

14 - предыдущее состояние клавиши равно 1, если перед вызовом клавиша

уже была нажата.

15 - код изменения состояния равен 1, если клавиша отпущена, и 0, если осталась нажата.

Для сообщения WM_KEYDOWN код изменения состояния (бит 15) и код контекста (бит 13) равны 0.

Несистемный код образуется любой клавиатурной комбинацией, в которой клавиша Alt не нажата, а также клавиатурной комбинацией, нажимаемой, когда окно CWnd имеет фокус ввода.

afxjmsg void OnKeyUp (UINT nChar, UINT nRepCnt, UINT nFlags);

Метод вызывается, когда пользователь отпускает нажатую клавишу (несистемный код).

Для сообщения WM_KEYUP код изменения состояния (бит 15) равен 1, а код контекста (бит 13) равен 0.

afxjmsg void OnLButtonDblClk (UINT nFlags, CPoint point);

Метод вызывается при двойном щелчке пользователя левой кнопкой мыши.

Параметры:

nFlags - флажок, указывающий, какие дополнительные клавиши были одновременно нажаты. Этот параметр определяется комбинацией следующих значений:

MK_CONTROL - нажата клавиша Ctrl; MK_LBUTTON - нажата левая кнопка мыши; MK_MBUTTON - нажата средняя кнопка мыши; MK_RBUTTON - нажата правая кнопка мыши; MK_SHIFT - нажата клавиша Shift.

point - указывает х и у координаты курсора мыши (относительно верхнего левого угла окна).

Отметим, что на самом деле двойной щелчок левой кнопкой мыши инициирует четыре сообщения: WM_LBUTTONDOWN, WM_LBUTTONUP, WM_LBUTTONDBLCLK и опять WMJLBUTTONUP.

afxjoisg void OnLButtonDown (UINT nFlags, CPoint point);

Метод вызывается при щелчке пользователя левой кнопкой мыши.

Параметры:

nFlags - флажок, указывающий, какие дополнительные клавиши были одновременно нажаты. Этот параметр определяется комбинацией следующих значений:

MK_CONTROL

MK_LBUTTON

MK_MBUTTON

MK_RBUTTON

MK_SHIFT

point - указывает х и у координаты курсора мыши (относительно верхнего левого угла окна).

afxjmsg void OnLButtonUp (UINT nFlags, CPoint point);

Метод вызывается, когда пользователь отпускает левую кнопку мыши. afxjmsg void OnMButtonDblClk (UINT nFlags, CPoint point);

Метод вызывается при двойном щелчке пользователя средней кнопкой мыши.

afx_msg void OnMButtonDown (UINT nFlags, CPoint point);

Метод вызывается при щелчке пользователя средней кнопкой мыши.

afc_msg hit OnMouseActivate (CWnd* pDesktopWnd, UINT nHitTest, UINT message);

Метод вызывается при щелчке мышью в неактивном окне.

Метод может вернуть одно из следующих значений: MA.ACTIVATE - активизировать объект CWnd; MA_NOACTIVATE - не активизировать объект CWnd; MA_ACTIVATEANDEAT - объект CWnd активизировать, а сообщение от

мыши сбросить;

MAJVOACTTVATEANDEAT - не активизировать объект CWnd и сбросить сообщение от мыши.

afc_msg void OnRButtonDblClk (UINT nFlags, CPoint point);

Метод вызывается при двойном щелчке пользователя правой кнопкой мыши.

afrjmsg void OnRButtonDown (UINT nFlags, CPoint point);

Метод вызывается при щелчке пользователя правой кнопкой мыши. afcjmsg void OnRButtonUp (UINT nFlags, CPoint point);

Метод вызывается, когда пользователь отпускает правую кнопку мыши. afx msg void OnTimer (UINT nIDEvent);

Метод сызывается для обработки сообщения WM_TIMER, инициируемого запущенным таймером.

Параметры: nIDEvent - идентификатор таймера.

Запуск таймера выполняется вызовом метода SetTimer.

afx_msg void OnVScroll (UINT nSBCode, UINT nPos, CScrollBar* pScrollBar); Метод вызывается при щелчке пользователя на вертикальной линейке прокрутки.

Параметры:

nSBCode - специфицирует код линейки прокрутки, указывающий выполненное пользователем действие:

SB_BOTTOM - прокрутить в начало;

SBJENDSCROLL - прокрутить в конец;

SBJLINEDOWN - прокрутить на одну строку вниз;

SB_LINEUP - прокрутить на одну строку вверх;

SB_PAGEDOWN - прокрутить на одну страницу вниз;

SB_PAGEUP - прокрутить на одну страницу вверх;

SB_THUMBPOSITION - прокрутить до указанной позиции. Текущая позиция указывается параметром nPos;

SB_THUMBTRACK - переместить маркер прокрутки к указанной позиции

SB_TOP - прокрутить вверх.

nPos - значение текущей позиции (только для флажков SB_THUMBPOSITION и SB_THUMBTRACK). Отметим, что в зависимости от диапазона линейки прокрутки данное значение может быть и отрицательным.

pScrollBar - при щелчке пользователя на линейке прокрутки этот параметр равен NULL. Если сообщение инициировано элементом управления линейка прокрутки, то параметр содержит указатель на этот элемент управления.

afx_msg void OnNcPaint ();

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

afxjnsg void OnNcRButtonDblCIk (UINT nHitTest, CPoint point);

Метод вызывается при двойном щелчке правой кнопкой мыши в системной области окна.

afx_msg void OnNcRButtonDown (UINT nHitTest, CPoint point);

Метод вызывается при щелчке правой кнопкой мыши в системной об­ласти окна.

afx_msg void OnNcRButtonUp (UINT nHitTest, CPoint point);

Метод вызывается, когда пользователь отпускает правую кнопку мыши (в системной области окна).

afe_msg void OnMDIActivate (BOOL bActivate, CWnd* pActivateWnd, CWnd* p Deactivate Wnd);

Метод вызывается при активизации или деактивизации дочернего окна MDI-окна.

Параметры:

bActivate - при значении TRUE дочернее окно активизируется, при FALSE - деактивизируется.

PActivateWnd - указатель на активизируемое дочернее окно MDI-окна. pDeactivateWnd - указатель на деактивизируемое дочернее окно MDI-окна.

Соседние файлы в папке VC++Баженова