Шаг 118.
Microsoft Visual C++ 2010. Начала.
Справочная информация. Отображение справочной информации

    На этом шаге мы рассмотрим программу, использующую созданный файл помощи.

    Отображение справочной информации обеспечивает метод ShowHelp объекта Help, которому в качестве параметра передается идентификатор объекта, запрашивающего справочную информацию, имя файла справочной информации и идентификатор раздела справочной информации. В качестве примера в ниже приведена процедура обработки события Click, возникающего при щелчке на кнопке Справка окна программы "Чистый дисконтированный доход".

private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
			 Help::ShowHelp(this, "cdd.chm", "cdd_01.html");
		 }

    Стандартным способом доступа к справочной информации является нажатие клавиши F1. Причем, как правило, при нажатии F1 в окне справочной информации отображается раздел справки, связанный действиями пользователя, которые выполняются в данный момент.

    Для того чтобы реализовать этот способ отображения справочной информации, на форму надо добавить компонент HelpProvider (рисунок 1).


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

    После того как компонент HelpProvider будет добавлен на форму, надо выполнить его настройку — указать имя файла справочной информации в качестве значения свойства HelpNamespace. Далее для каждого элемента управления надо указать раздел справочной информации, который следует отобразить в результате нажатия клавиши F1 в момент нахождения фокуса на этом элементе. Раздел указывается путем установки значений свойств ShowHelp, HelpNavigator и HelpKeyWord.

    Отображение справочной информации демонстрирует программа "Чистый дисконтированный доход" (ее форма приведена на рисунке 2).


Рис.2. Справочная информация отображается в результате нажатия клавиши F1 или щелчка на кнопке Справка

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

    Значения свойств компонентов приведены в таблице 1.

Таблица 1. Значения свойств компонентов
Компонент Свойство Значение
helpProvider1 HelpNamespace cdd.chm
textBox1 ShowHelp on helpProveder1 True
HelpNavigator on helpProvider1 Topic
HelpKeyWord on helpProvider1 cdd_02.html
textBox2 ShowHelp on helpProveder1 True
HelpNavigator on helpProvider1 Topic
HelpKeyWord on helpProvider1 cdd_03.html
textBox3 ShowHelp on helpProveder1 True
HelpNavigator on helpProvider1 Topic
HelpKeyWord on helpProvider1 cdd_04.html

    Функции обработки событий на кнопках Расчет и Справка приведены ниже:

// щелчок на кнопке Справка
private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
	 Help::ShowHelp(this, "cdd.chm", "cdd_01.html");
 }
// щелчок на кнопке Расчет
private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
	double p = 0; // поступления от продаж
	double r = 0; // расходы
	double d = 0; // ставка дисконтирования
	double npv = 0; // чистый дисконтированный доход
	try
	{
		p = Convert::ToDouble(textBox1->Text);
		r = Convert::ToDouble(textBox2->Text);
		d = Convert::ToDouble(textBox3->Text) / 100;
		npv = (p - r) / (1.0 + d);
		label4->Text = "Чистый дисконтированный доход (NPV) = " +
			npv.ToString("c");
	}
	catch ( System::FormatException^ e)
	{
		MessageBox::Show(
			"Ошибка исходных данных.\nУбедитесь, что все поля "
			" заполнены, а так же в том, что в качестве "
			"десятичного разделителя используется запятая.",
			"Чистый дисконтированный доход",
			MessageBoxButtons::OK,
			MessageBoxIcon::Exclamation);
	}
 }
Полный архив проекта вместе с файлами помощи можно взять здесь.

    Со следующего шага мы начнем рассматривать пример программы.




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