Шаг 49.
Microsoft Visual C++ 2010. Начала.
Базовые компоненты. Компонент FontDialog

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

    Компонент FontDialog (рисунок 1) является стандартным диалоговым окном и предназначен для выбора шрифта.


Рис.1. Компонент FontDialog

    Основные свойства этого компонента приведены в таблице 1.

Таблица 1. Свойства компонента FontDialog
Свойство Описание
Color Получает или задает цвет выбранного шрифта
FixedPitchOnly Получает или задает значение, показывающее, предоставляет ли диалоговое окно возможность выбора только моноширинных шрифтов (False - нет)
Font Получает или задает выбранный шрифт
MaxSize Получает или задает наибольший размер в пунктах, который может выбрать пользователь
MinSize Получает или задает наименьший размер в пунктах, который может выбрать пользователь
ShowApply Получает или задает значение, показывающее, содержит ли диалоговое окно кнопку Применить (False - кнопка не отображается)
ShowColor Получает или задает значение, показывающее, отображает ли диалоговое окно выбор цветов (False - окно не отображается)
ShowEffects Получает или задает значение, показывающее, содержит ли диалоговое окно элементы управления, позволяющие пользователю задавать параметры зачеркивания, подчеркивания и цвета текста (False - окно не отображается)
ShowHelp Получает или задает значение, показывающее, отображает ли диалоговое окно кнопку Справка (False - кнопка не отображается)

    Приведем текст обработчика события выбора пункта меню Параметры | Шрифт... приложения из 48 шага:

// выбор в меню Параметры команды Шрифт
private: System::Void toolStripMenuItem7_Click(System::Object^  sender, 
		System::EventArgs^  e) {
			 fontDialog1->Font = textBox1->Font;
			if (fontDialog1->ShowDialog() == 
				System::Windows::Forms::DialogResult::OK)
			{
				textBox1->Font = fontDialog1->Font;
			}
}

    Прокомментируем приведенный фрагмент.

    Сначала выполняется установка текущего шрифта компонента textBox1 в компоненте fontDialog1. Это делается для того, чтобы пользователь, при открытии окна выбора шрифта, видел установленный шрифт.

    Метод ShowDialog() активизирует диалоговое окно выбора шрифта (рисунок 2).


Рис.2. Окно выбора шрифта

    Пользователь может закрыть это окно, нажав на кнопку OK. В этом случае проверяемое условие в условной конствукции станет истинным, и выполнится присваивание, помещенное в фигурные скобки, после чего выбранный пользователем шрифт будет использоваться в компоненте textBox1. В противном случае (если диалоговое окно выбора шрифта было закрыто другим способом) проверяемое условие будет ложным, и свойство Font компонента textBox1 не изменит сове значение.

    На рисунке 2 приведено окно выбора шрифта с полем для выбора цвета. Обратите внимание, что автоматически выбранный цвет установлен не будет: нужно его передать соответствующему свойству компонента.

    Для нашего случая обработчик события будет выглядеть так:

// выбор в меню Параметры команды Шрифт
private: System::Void toolStripMenuItem7_Click(System::Object^  sender, 
		System::EventArgs^  e) {
			 fontDialog1->Font = textBox1->Font;
			if (fontDialog1->ShowDialog() == 
				System::Windows::Forms::DialogResult::OK)
			{
				textBox1->Font = fontDialog1->Font;
				textBox1->ForeColor = fontDialog1->Color;
			}
}

    В заключение отметим, что важную роль в обработке щелчка на кнопке Применить диалогового окна выбора шрифтов играет событие Apply компонента FontDialog. Оно вызывается тогда, когда пользователь щелкнет по этой кнопке. Окно выбора шрифтов не закроется, но, тем не менее заланные параметры вступят в силу. Напомним, что для отображения этой кнопки, должно быть установлено в True свойство ShowApply.


Рис.3. Кпопка Применить и результаты ее нажатия

    Для получения такого результата достаточно написать обработчик события Apply(), в который поместить те же строки, что и в предыдущем случае:

		textBox1->Font = fontDialog1->Font;
		textBox1->ForeColor = fontDialog1->Color;

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




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