Чтение онлайн

на главную - закладки

Жанры

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Фролов Григорий Вячеславович

Шрифт:

 // строку TEXT или PIC

 if (bIndicatorTEXT) pCmdUI->SetText("TEXT"); // отображаем строку TEXT

 else pCmdUI->SetText("PIC"); // отображаем строку PIC

 // Разрешаем отображение текста в индикаторе

 pCmdUI->Enable;

}

В качестве параметра pCmdUI методу OnUpdateTEXT передается указатель на объект класса CCmdUI. Этот объект представляет объект интерфейса приложения (строку

меню, кнопку панели управления или индикатор панели состояния). В контексте данного конкретного метода этот объект представляет индикатор панели состояния, имеющий идентификатор ID_INDICATOR_TEXT.

Для управления индикатором мы используем методы SetText и Enable класса CCmdUI. Эти методы устанавливают текст индикатора и снимают с него блокировку (если блокировка ранее была установлена).

Метод OnMenuExit класса CStateWindow

Пользователь может завершить приложение, выбрав из меню Work строку Exit. В этом случае приложению передается командное сообщение с идентификатором ID_WORK_EXIT. Соответствующая макрокоманда ON_COMMAND из таблицы сообщений класса CStateWindow вызывает для обработки этого сообщения метод OnMenuExit:

ON_COMMAND(ID_WORK_EXIT, OnMenuExit)

Метод OnMenuExit завершает работу приложения, для чего вызывает метод DestroyWindow, определенный в классе CWnd для главного окна приложения:

DestroyWindow;

4. Стандартные диалоговые панели

В 24 томе серии “Библиотека системного программиста”, посвященном библиотеке MFC, вы уже сталкивались со стандартными диалоговыми панелями, предназначенными для открытия файлов документов и сохранения измененных документов на диске. Эти диалоговые панели используются всеми приложениями, построенными с использованием средств MFC AppWizard и имеющими оконный пользовательский интерфейс.

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

В состав библиотеки классов MFC входят ряд классов, представляющих стандартные диалоговые панели. Эти классы позволяют легко реализовать такие часто используемые операции, как открытие и сохранение файла, выбор цвета, выбор шрифта и т. д. Схема наследования классов стандартных диалоговых панелей представлена на рисунке 4.1.

Класс Описание
CColorDialog Панель для выбора цвета
CFileDialog Панель выбора файлов для открытия и сохранения на диске
CFindReplaceDialog Панель для выполнения операции поиска и замены
CFontDialog Панель для выбора шрифта
CPrintDialog Панель для вывода документа на печать
CPageSetupDialog Панель
выбора формата документа

Кроме перечисленных в таблице, существует класс COleDialog, который определяет стандартные панели диалогов, предназначенные для управления технологией OLE. В этой книге мы не рассматриваем программирование OLE и поэтому не будем останавливаться на классе COleDialog.

Рис. 4.1. Классы стандартных диалоговых панелей

Классы, управляющие стандартными диалоговыми панелями, определены в файле afxdlgs.h. Если вы используете в своем приложении эти классы, вы должны включить файл afxdlgs.h в исходные тексты при помощи директивы препроцессора #include:

// Включаемый файл для стандартных диалоговых панелей

#include <afxdlgs.h>

Класс COleDialog и другие классы, которые используются для управления стандартными диалоговыми панелями, связанными с технологией OLE, определены в другом файле – afxodlgs.h .

Панель выбора цвета

Чтобы отобразить на экране стандартную диалоговую панель выбора цвета , надо создать объект класса CColorDialog, а затем вызвать метод DoModal. При создании объекта класса CColorDialog используйте следующий конструктор:

CColorDialog(COLORREF clrInit = 0, DWORD dwFlags = 0, CWnd* pParentWnd = NULL);

Все параметры конструктора необязательные, вы можете их опустить, однако в некоторых случаях, использование этих параметров может вам помочь.

Первый параметр clrInit позволяет указать цвет, выбранный по умолчанию сразу после открытия диалоговой панели. Если параметр не будет указан, в качестве цвета, выбранного по умолчанию будет использоваться черный цвет.

Параметр dwFlags содержит набор флагов, управляющих диалоговой панелью выбора цвета. Подробно про эти флаги вы можете прочитать в 14 томе “Библиотеки системного программиста”, в разделе, описывающем структуру CHOOSECOLOR.

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

Если при создании объекта CColorDialog вы не укажите параметр dwFlags, вы, тем не менее, можете выполнить настройку диалоговой панели, обратившись непосредственно к элементу m_cc данного класса. Параметр dwFlags, указанный в конструкторе, используется для инициализации m_cc. Изменения в элемент m_cc должны быть внесены до того, как панель будет отображена на экране.

Методы класса CColorDialog

Чтобы вывести диалоговую панель выбора цвета на экран, вы должны использовать метод DoModal:

virtual int DoModal;

После отображения панели на экране пользователь может выбрать из нее цвет и нажать кнопку OK или Cancel для подтверждения выбора цвета или отказа от него. Когда диалоговая панель закрывается, метод DoModal возвращает значение IDOK или IDCANCEL, в зависимости от того, какую кнопку нажал пользователь:

Поделиться:
Популярные книги

Последний Паладин. Том 2

Саваровский Роман
2. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 2

Зубных дел мастер

Дроздов Анатолий Федорович
1. Зубных дел мастер
Фантастика:
научная фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Зубных дел мастер

Истребитель. Ас из будущего

Корчевский Юрий Григорьевич
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.25
рейтинг книги
Истребитель. Ас из будущего

Честное пионерское! Часть 3

Федин Андрей Анатольевич
3. Честное пионерское!
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Честное пионерское! Часть 3

Обгоняя время

Иванов Дмитрий
13. Девяностые
Фантастика:
попаданцы
5.00
рейтинг книги
Обгоняя время

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Магия чистых душ

Шах Ольга
Любовные романы:
любовно-фантастические романы
5.40
рейтинг книги
Магия чистых душ

Имя нам Легион. Том 4

Дорничев Дмитрий
4. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 4

Девятый

Каменистый Артем
1. Девятый
Фантастика:
боевая фантастика
попаданцы
9.15
рейтинг книги
Девятый

Морской волк. 1-я Трилогия

Савин Владислав
1. Морской волк
Фантастика:
альтернативная история
8.71
рейтинг книги
Морской волк. 1-я Трилогия

Отмороженный 8.0

Гарцевич Евгений Александрович
8. Отмороженный
Фантастика:
постапокалипсис
рпг
аниме
5.00
рейтинг книги
Отмороженный 8.0

Совершенный: охота

Vector
3. Совершенный
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Совершенный: охота

Калибр Личности 1

Голд Джон
1. Калибр Личности
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Калибр Личности 1

Личник

Валериев Игорь
3. Ермак
Фантастика:
альтернативная история
6.33
рейтинг книги
Личник