Фролов Григорий Вячеславович
Шрифт:
Последний параметр pParentWnd можно использовать, чтобы указать родительское окно диалоговой панели.
Если при создании объекта CColorDialog вы не укажите параметр dwFlags, вы, тем не менее, можете выполнить настройку диалоговой панели, обратившись непосредственно к элементу m_cc данного класса. Параметр dwFlags, указанный в конструкторе, используется для инициализации m_cc. Изменения в элемент m_cc должны быть внесены до того, как панель будет отображена на экране.
Методы класса CColorDialog
Чтобы вывести диалоговую панель выбора цвета на экран, вы должны использовать метод DoModal:
После отображения панели на экране пользователь может выбрать из нее цвет и нажать кнопку OK или Cancel для подтверждения выбора цвета или отказа от него. Когда диалоговая панель закрывается, метод DoModal возвращает значение IDOK или IDCANCEL, в зависимости от того, какую кнопку нажал пользователь:
На экране появится стандартная диалоговая панель выбора цвета Color (рис. 4.2). В верхней половине диалоговой панели, ниже надписи Basic colors, рассположены 48 прямоугольников, имеющих различные цвета. Они представляют так называемые основные цвета. Вы можете выбрать любой из этих цветов, и нажать кнопку OK.
Рис. 4.2. Стандартная диалоговая панель Color
После того как диалоговая панель закрыта, вы можете воспользоваться методами класса CColorDialog, чтобы узнать цвета, выбранные пользователем.
Для определения цвета, выбранного пользователем можно обратиться к методу GetColor класса CColorDialog:
Данный метод возвращает значение COLORREF, соответствующее выбранному цвету. Если вам недостаточно основных цветов, представленных в диалоговой панели Color, вы можете выбрать до 16 дополнительных цветов. Чтобы выбрать дополнительные цвета, нажмите кнопку Define Custom Colors. Диалоговая панель Color изменит свой внешний вид (рис. 4.3).
Рис. 4.3. Выбор дополнительных цветов
С правой стороны появятся дополнительные органы управления, позволяющие выбрать любой из 16777216 цветов. Когда цвет выбран, нажмите кнопку Add Custom Colors. Выбранный вами цвет будет добавлен к дополнительным цветам. С левой стороны панели, под надписью Custom colors, один из свободных прямоугольников окрасится соответствующим цветом.
Вы можете определить дополнительные цвета, выбранные пользователем в диалоговой панели Color, при помощи метода GetSavedCustomColors класса CColorDialog:
Метод GetSavedCustomColors возвращает указатель на массив из 16 элементов типа COLORREF . Каждый элемент массива описывает один дополнительный цвет.
Когда диалоговая панель Color отображается приложением первый раз, все прямоугольники, отображающие дополнительные цвета, имеют белый цвет. Соответствующие элементы массива, полученного методом GetSavedCustomColors, будут иметь значение RGB(255,255,255). Дополнительные цвета, выбранные пользователем, сохраняются во время работы приложения. После перезапуска приложения дополнительные цвета сбрасываются.
Панель выбора файлов
Среди стандартных диалоговых панелей , для которых в библиотеке MFC создан специальный класс, есть панели для работы с файловой системой – Open и Save As (рис. 4.4). Диалоговая панель Open позволяет выбрать один или несколько файлов, расположенных на дисках компьютера, и открыть их для дальнейшего использования. Диалоговая панель Save As позволяет выбрать имя файла для записи в него документа.
Для управления диалоговыми панелями Open и Save As предназначен один единственный класс – CFileDialog . Рассмотрим конструктор класса CFileDialog более подробно:
Объекты класса CFileDialog представляют диалоговую панель Open или Save As в зависимости от параметра bOpenFileDialog. Если параметр bOpenFileDialog содержит значение TRUE, тогда создается объект, управляющий диалоговой панелью Open, а если FALSE – диалоговой панелью Save As.