Шаг 193.
Microsoft Visual C++ 2010. Язык С/С++.
Компоненты Windows Forms. Компонент FontDialog

    На этом шаге мы рассмотрим назначение и использование этого компонента.

    Компонент находится в списке Dialogs (Диалоговые окна) палитры компонентов, обеспечивает выбор шрифта и его атрибутов (стиля, размера, цвета и т. п.) в диалоговом режиме.

    Свойства этого компонента приведены на рисунке 1.


Рис.1. Свойства компонента FontDialog

    Среди перечисленных свойств можно отметить следующие:

    Таким образом, после выбора нужного шрифта его название попадает в свойство компонента Font.

    Пример использования этого компонента демонстрируется на рисунках 2 (форма в режиме дизайна) и 3 (форма в режиме выполнения). Тексты обработчиков кнопок приведены ниже.


Рис.2. Форма в режиме разработки

    Тексты обработчиков кнопок:

// Кнопка "Выход"
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
	 Close();
 }
// Кнопка "Задание шрифта"
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
	 if ( fontDialog1->ShowDialog() == 
		 System::Windows::Forms::DialogResult::OK )
		 listBox1->Font = fontDialog1->Font;
 }


Рис.3. Форма в режиме выполнения

    Изменим немного наше приложение. Добавим возможность не только выбора шрифта, но и его цвета.

    Для этого у компонента FontDialog установим свойство ShowColor в True (рисунок 1). Это позволит в диалоговом окне выбора шрифта отобразить секцию, которая отвечает за выбор цвета. Обработчик кнопки "Задание шрифта" дополним условием, проверяющим установку этого свойства: в случае положительного ответа изменим цвет шрифта у компонента ListBox:

// Кнопка "Задание шрифта"
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
	 if ( fontDialog1->ShowDialog() == 
		 System::Windows::Forms::DialogResult::OK )
	 {
		 listBox1->Font = fontDialog1->Font;
		 // Проверка установки свойства ShowColor
		 if (fontDialog1->ShowColor) 
			 listBox1->ForeColor = fontDialog1->Color;
	 }
 }

    Результат работы приложения приведен на рисунке 4.


Рис.4. Возможность выбора цвета шрифта

    Продолжим эксперименты с этим компонентом. Установив свойство ShowApply в True, отобразим в окне выбора шрифта и его параметров кнопку Применить (рисунок 5), которая позволит установить заданные параметры шрифта без закрытия окна выбора шрифта.


Рис.5. Кнопка "Применить"

    Однако чтобы она начала выполнять свои функции, нужно реализовать в программе обработчик события Apply компонента FontDialog. Текст его может быть таким:

// Кнопка "Применить" компонента FontDialog
private: System::Void fontDialog1_Apply(System::Object^  sender, 
    System::EventArgs^  e) {
	 listBox1->Font = fontDialog1->Font;
	 // Проверка установки свойства ShowColor
	 if (fontDialog1->ShowColor) 
		 listBox1->ForeColor = fontDialog1->Color;
 }
Архив проекта можно взять здесь.

    Результат работы приложения приведен на рисунке 6.


Рис.6. Использование кнопки "Применить"

    На следующем шаге мы рассмотрим компонент PrintDialog.




Предыдущий шаг Содержание Следующий шаг