Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual1.doc
Скачиваний:
8
Добавлен:
07.03.2016
Размер:
4.35 Mб
Скачать

8.7. Стандартні діалоги вибору файлів, шрифтів та кольору

Стандартні діалоги вибору файлів

Для вибору файлів використовується діалогове вікно класу CFileDialog. Відкрити файл за допомогою цього класу дуже просто. Ось приклад коду, який відкриває файл, вибраний користувачем у діалоговому вікні:

CFileDialog dlg(TRUE, "bmp", "*.bmp");

if (dlg.DoModal() == IDOK) {

CFile file;

VERIFY(file.Open(dlg.GetPathName(), CFile::modeRead));

.............................................................

}

Перший параметр (TRUE) конструктора вказує, що даний об'єкт – це діалогове вікно «File Open», а не «File Save», «bmp» – це розширення файлів за замовчуванням, а рядок «*.bmp» з’явиться у вікні введення імені файлу. Функція CFileDialog::GetPathName повертає об'єкт CString, який містить повне ім'я вибраного файлу (із зазначенням шляху). Приклад діалогового вікна для відкриття файлів показано на рис. 8.12:

Рис. 8.12. Стандартний діалог для вибору файлів

Стандартні діалоги вибору шрифтів

Стандартний діалог вибору шрифтів показано на рис. 8.13. Вибір параметрів шрифту через стандартне діалогове вікно ми вже описували у п 5.5. Цей діалог можливо створити за допомогою стандартної функції ChooseFont, або за допомогою класу CFontDialog, у якому використовується ця функція. Розглянемо код для створення діалогу вибору шрифтів на основі класу:

LOGFONT lf; // структура з параметрами шрифту

lf.lfHeight=-20; // задання початкових параметрів шрифту

..............................................................

CFontDialogdlgFont(&lf);

if (dlgFont.DoModal()==IDOK)

{

dlgFont.GetCurrentFont(&lf);

CFont cf;

cf.CreateFontIndirect(&lf);

}

Рис. 8.13. Стандартний діалог для вибору шрифтів

Для виклику діалогу необхідно створити об'єкт класу CFontDialog, який запускається на виконання функцією DoModal. Якщо результат роботи функції повертає IDOK, то можна використати функцію GetCurrentFont щоб отримати структуру LOGFONT, із якої можливо сформувати клас шрифту. В структурі LOGFONT містяться усі характеристики шрифту, але їх можливо отримати і за допомогою функцій класу CFontDialog:

Таблиця 8.3

Функції класу CFontDialog, які дозволяють отримати характеристики вибраного шрифту

Функція

Опис

GetFaceName

ім'я вибраного шрифту

GetStyleName

стиль вибраного шрифту

GetSize

розмір вибраного шрифту

GetColor

колір вибраного шрифту

GetWeight

ширина вибраного шрифту

IsStrikeOut

чи є шрифт перекресленим лінією ?

IsUnderline

чи є шрифт підкресленним ?

IsBold

чи є шрифт жирним ?

IsItalic

чи є шрифт нахиленим ?

Стандартний діалог вибору кольору

Стандартний діалог вибору кольору показано на рис. 8.14. Діалог вибору кольору створюється за допомогою класу CColorDialog, у якому використовується ця функція.

Рис. 8.14. Стандартний діалог для вибору кольору

Розглянемо код для створення діалогу вибору кольору на основі класу:

COLORREF m_Color = RGB(255,0,0);

CColorDialog color(m_Color);

if (color.DoModal()==IDOK)

{

m_Color = color.GetColor();

.................................................

}

Принцип роботи функції OnColor такий же як і у OnFont. Відмінності полягають в тому, що викликається діалог зміни кольору CColorDialog, який є стандартним класом діалогу для вибору кольору у Windows. А його функція GetColor повертає значення зміненого у діалозі кольору.

Для виклику діалогу необхідно створити об'єкт класу CColorDialog, який запускається на виконання функцією DoModal. Якщо результат роботи функції повертає IDOK, то можна використати функцію GetColor щоб отримати вибраний колір COLORREF.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]