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

 

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

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

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том1) — Бином, 2006. — 569 c.
Скачать (прямая ссылка): vicualcc2006t1.djvu
Предыдущая << 1 .. 164 165 166 167 168 169 < 170 > 171 172 173 174 175 176 .. 204 >> Следующая

// TODO: Здесь добавьте собственный код обработчика
СFont Font;
LOGFONT LF;
int LineHeight;
CFont *Ptr01dFont;
int X, Y;
// заполнение структуры LF свойствами // стандартного системного шрифта: CFont TempFont;
if (m_Pitch == PITCH_VARIABLE)
TempFont.CreateStockObject (SYSTEM_FONT); else
TempFont.CreateStockObject (SYSTEM_FIXED_FONT); TempFont.GetObject (sizeof (LOGFONT), &LF);
// теперь инициализируем поля IfWeight, lfltalic и lfUnderline: if (m__Bold)
LF.lfWeight = FW_BOLD; if (m__Italic)
LF.lfltalic = 1; if (m_Underline)
LF.lfUnderline = 1;
// создание и выбор шрифта: Font.CreateFontlndirect (&LF); PtrOldFont = dc.SelectObject (SFont);
// задание выравнивания: switch (m__Justify) {
case JUSTIFY_LEFT:
dc.SetTextAlign (TA_LEFT) ;
X = m_RectSample.left + 5;
break; case JUSTIFY CENTER:
dc.SetTextAlign (TA_CENTER);
X = (m_RectSample.left + m_RectSample.right) / 2; break; case JUSTIFY_RIGHT:
dc.SetTextAlign (TA_RIGHT); X = m_RectSample.right - 5; break;
}
// установка режима фона: dc.SetBkMode (TRANSPARENT);
// вывод строк текста:
LineHeight = LF.lfHeight * m_Spacing;
Y = m_RectSample.top + 15; dc.TextOut (X, Y, "AaBbCdDdEeFf") ;
Y += LineHeight;
dc.TextOut (X, Y, "GhHhliJjKkLl") ;
Y += LineHeight;
dc.TextOut (X, Y, "MmNnOoPpQqRr") ;
// отмена выбора шрифта:
dc.SelectObject (PtrOldFont);
//He вызывайте функцию CDialog::OnPaint() для сообщений, // связанных с перерисовкой
)
void CFormat::OnBold() {
// TODO: Здесь добавьте собственный код обработчика m_Bold = !m_Bold; InvalidateRect (&m_RectSample); UpdateWindow ();
}
void CFormat::OnCenter() {
// TODO: Здесь добавьте собственный код обработчика if (IsDlgButtonChecked (IDC_CENTER)) {
m_Justify = JUS TIFY_CENTER;
InvalidateRect (&m_RectSample) ; UpdateWindow ();
)
}
void CFormat::OnFixed() {
// TODO: Здесь добавьте собственный код обработчика if (IsDlgButtonChecked (IDC_FIXED)) {
m_Pitch = PITCH_FIXED; InvalidateRect (&m_RectSample);
UpdateWindow (); }
)
void CFormat::Onltalic () {
// TODO: Здесь добавьте собственный код обработчика m_Italic = !m_Italic; InvalidateRect (&m_RectSample); UpdateWindow ();
}
void CFormat::OnLeft()
(
// TODO: Здесь добавьте собственный код обработчика if (IsDlgButtonChecked (IDC_LEFT)j {
m_Justify = JU STIFY_LE FT; InvalidateRect (&m_RectSample) ; UpdateWindow (); }
}
void CFormat::OnRight()
{
// TODO: Здесь добавьте собственный код обработчика if (IsDlgButtonChecked (IDC_RIGHT)) {
m_JuStify = JUSTIFY_RIGHT; InvalidateRect (&m_RectSample); UpdateWindow (); }
}
void CFormat::OnUnderline() (
// TODO: Здесь добавьте собственный код обработчика m_Underline = !m_Underline; InvalidateRect (&m_RectSample); UpdateWindow ();
}
void CFormat::OnVariable() {
// TODO: Здесь добавьте собственный код обработчика if (IsDlgButtonChecked (IDC_VARIABLE)) {
m_Pitch = PITCH_VARIABLE; InvalidateRect (&m_RectSample) ; UpdateWindow (); )
)
void CFormat::OnChangeSpacing()
(
/'/ TODO: Если это элемент управления RICHEPIT, то он не может
// передать данное сообщение, пока не переопределена
'/ функция CDialog::OnlnitDialog() и не вызвана функция
// CRichEditCtrl().SetEventMask() с выполнением операции OR
// над флагом ENM_CHANGE и маской
// TODO: Здесь добавьте собственный код обработчика int: Temp;
Temp = (int)GetDlgltemlnt (IDC_SPACING); if (Temp > 0 SS Temp < 4) {
m_Spacing = Temp; InvalidateRect (&m_RectSample) ; UpdateWindow (); }
}
Создание немодальных диалоговых окон
В данном параграфе кратко описаны методы отображения немодальных диалоговых окон, которые менее распространены, чем модальные, однако в определенных ситуациях бывают очень полезны.
При отображении модального диалогового окна главное окно программы блокируется, поэтому модальное окно необходимо закрыть перед продолжением работы в главном окне. А при отображении немодального диалогового окна доступ к главному окну программы не блокируется. В результате можно продолжать работу внутри главного окна с одновременным отображением немодального. Фокус ввода передается между немодальным диалоговым окном и главным. Таким образом, немодальное диалоговое окно служит вспомогательным окном и используется вместе с главным. Например, команда проверки орфографии для текстового процессора обычно отображает немодальное диалоговое окно (можно внести исправления в документ, а затем продолжить проверку орфографии).
Как и модальное диалоговое окно, немодальное создают, используя редактор диалоговых окон Developer Studio. Чтобы породить класс для управления немодальным диалоговым окном от класса CDialog и определить переменные-члены и обработчики сообщений, используют мастер ClassWizard, как и для модального диалогового окна.
Перечислим различия в способах отображения немодальных и модальных диалоговых окон.
• Экземпляр класса диалогового окна необходимо объявить как глобальный объект или создать с помощью оператора new вместо объявления его локальным объектом. Это необходимо потому, что немодальное диалоговое окно остается открытым после завершения функции, которая его отображает, а объект, управляющий диалоговым окном, сохраняется. При создании объекта с использованием оператора new убедитесь, что для уничтожения этого объекта используется оператор delete.
Предыдущая << 1 .. 164 165 166 167 168 169 < 170 > 171 172 173 174 175 176 .. 204 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100