Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том1)" -> 159

Visual С++ 6. Полное руководство: В 2 т.(том1) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том1) — Бином, 2006. — 569 c.
Скачать (прямая ссылка): vicualcc2006t1.djvu
Предыдущая << 1 .. 153 154 155 156 157 158 < 159 > 160 161 162 163 164 165 .. 204 >> Следующая

Чтобы определить первые два обработчика сообщений, выберите CFormat в списке Object IDs. Теперь в списке Messsages отобразятся идентификаторы уведомляющих сообщений Windows, которые передаются диалоговому окну. Этот список не содержит сообщений, передаваемых элементами управления. Выберите сообщение
wm_INITDIAL0G и щелкните на кнопке Add Function, чтобы определить его обработчик. Мастер ClassWizard создаст функцию с именем OnlnitDialog. Сообщение wm_initdialog посылается при первом создании диалогового окна сразу перед его отображением. Затем в списке Messages выберите wm_paint и щелкните на кнопке Add Function. Мастер ClassWizard создаст функцию с именем OnPaint. Сообщение wm_paint передается каждый раз, когда требуется отобразить или перерисовать диалоговое окно.
MFC ClassWizaid
M?ssage;M;eps PYoject:
Member Variables
JFontDemo
С: V.,^FC)ADeracftFbfma{.ti CS.iSF:ort?emo\&matcpp: Control [Os: Тура
J Automatiori j ActiveX Events^} Oasslnfa | Oats name:
Д:: ¦¦'{cFormat
IDC_B0LD IDC ITALIC IDC.LEFT IDC.SAMPLE IDC SPACING
IDCJJNDERLINE IDC.VARIABLE IDCANCEL IDOK
Description: hi Mth validation Minimum Value: : v
Maximum Vatge: :: .?
BOOL BOOL int
BOOL int
Member:
m_Bold mjfalic m_Jus%
rn_Underline m Pitch
Add Variable . Djslete Variable
OK
Cancel V
Рис. 15.11. Страница Member Variables диалогового окна мастера ClassWizard
Теперь необходимо предоставить обработчик сообщения для каждого флажка или переключателя, который будет получать управление всякий раз при выборе или отмене выбора элемента управления. Выберите idc_B0LD в списке Object IDs, чтобы определить обработчик сообщений для флажка Bold. В списке Messages отобразятся оба типа сообщений, которые флажок может передавать диалоговому окну (bn_clicked и bn_doubleclicked). Выберите первое. Это сообщение посылается элементами управления данного типа при одинарном щелчке. Щелкните на кнопке Add Function... и в диалоговом окне Add Member Function щелкните на кнопке ОК, чтобы принять заданное по умолчанию имя функции OnBold. Аналогичную процедуру следует применить для задания обработчиков сообщения bnclicked всем остальным флажкам и переключателям. Во всех случаях принимайте стандартные имена. В табл. 15.2 приведены идентификаторы каждого флажка и переключателя и имена обработчиков сообщений bn_clicked, передаваемых этими элементами управления.
Таблица 15.2. Обработчики сообщения bnclicked
Идентификатор объекта Имя обработчика сообщения
IDC_BOLD OnBold
IDC_CENTER OnCenter
IDC_FIXED OnFixed
IDC_ITALIC Onltalic
IDC_LEFT OnLeft
IDC_RIGHT OnRight
IDC_ONDERLINE OnUnderline
IDC_VARIABLE OnVariable
Далее определим функцию, которая получает управление при изменении содержимого поля IDC_SPACING. Выберите в списке Object IDs значение IDC_SPACING. Теперь в списке Messages будут отображены все сообщения, передаваемые полем. Выберите сообщение EN_CHANGE, посылаемое при каждом изменении текста. Затем щелкните на кнопке Add Function..., примите стандартное имя функции OnChangeSpacing и щелкните на кнопке ОК. На рис. 15.12 показано диалоговое окно мастера ClassWisard после добавления всех обработчиков сообщений.
mfc ClassWi2aid
Message Maps Pioject:
M embei Variables
АЦоШсп j ActiveX Event? J dan Info
|FontDemo ;;|CFormat
C:V..y:ontDerooyroimat.h.C\..\.For)tDemoSFoimat.cpp
ObiectlDs:
ID APP_AB0UT ID_APP_EXIT ID EDlf_C0PY ID_EDIT CUT ID EDIT_PASTE ID_EDIT_UNDO
Merflbe(|urictipra:
DoDataExchange
OnBold
OnCenler
OnChangeSpacing OnFixed
Descirption'
Messages
CalcWindowRect Create
DefWindowProc DestroyWindow DoDataExchange
DoModal GetScrollBarCtrl
ON_IDC_BOLD:BN_CLICKED ON_IDC_CENTER:BN_CLICKED ON_IDC_SPACING:EN.CHANGE ON IDC FIXED:BN CLICKED
3
1
Add Cass... "
?dit Code I
OK
: Cancel
Рис. 15.12. Диалоговое окно мастера ClassWizard после определения обработчиков сообщений для класса CFormat
Управление диалоговым окном класса CFormat
Завершим создание класса CFormat. Откройте файл Format.h и добавьте два следующих определения в начало файла.
enum {JUSTIFY_LEFT, JUSTIFY_CENTER, JUSTIFY_RIGHT}; enuid {PITCH_VARIABLE, PITCH_FIXED>;
/////////////////////////////////////////////////////////////// // Диалоговое окно класса CFormat
Перечисления в этих определениях используются для обращения к переключателям. Константы первого перечисления (равные О, I и 2) — это ссылки на номера переключателей группы Justify диалогового окна Format, а константы второго перечисления — это ссылки на номера переключателей в группе Pitch.
Затем добавьте определение защищенной переменной m_ReсtSample в определение класса CFormat.
iiiiiiiiii/iii/i///iiii/ii//iiiii/iii/iiiiiiiiiiiii//iiiii/i/i/ i/ Класс CFormat
class CFormat : public CDialog (
protected: RECT m_RectSample;
// оставшаяся часть определения класса CFormat . . . }
В файле Format.срр добавьте следующие строки в функцию OnlnitDialog.
BOOL CFormat::OnlnitDialog() (
CDialog::OnlnitDialog();
// TODO: Здесь добавьте код дополнительной инициализации
GetDlgltem (IDC_SAMPLE)->GetWindowReсt (&m_RectSample); ScreenToClient (&m_RectSample) ;
Предыдущая << 1 .. 153 154 155 156 157 158 < 159 > 160 161 162 163 164 165 .. 204 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100