На этом шаге мы рассмотрим еализацию выдачи информации о программе.
При выборе из меню Справка команды О программе Сапер на экране появляется одноименное диалоговое окно (рисунок 1).
Рис.1. Окно О программе
Чтобы программа во время своей работы могла вывести на экран окно, отличное от главного (стартового), в проект нужно добавить форму: в меню Project (Проект) выбрать команду Add New Item (Добавить новый элемент...), в появившемся окне выбрать Windows Form (Форма Windows Forms) и в поле Name (Имя) ввести имя формы. В результате выполнения этих действий в проект будет добавлена новая форма.
Форма О программе Сапер (Form2) приведена на рисунке 2, значения свойств формы и компонентов — в таблицах 1 и 2.
Рис.2. Форма О программе
Свойство | Значение |
---|---|
Text | О программе |
FormBorderStyle | FixedToolWindow |
ShowInTaskbar | False |
StartPosition | CenterParent |
Компонент | Свойство | Значение |
---|---|---|
linkLabel1 | Text | http://it.kgsu.ru |
button1 | DialogResult | OK |
Вывод окна О программе выполняет функция обработки события Click, которое происходит в результате выбора в меню Справка команды О программе:
// Выбор в меню Справка команды О программе private: System::Void оПрограммеСаперToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) { Form2^ frm = gcnew Form2(); frm->ShowDialog(); }
Следует обратить внимание, чтобы объявленный в файле класс Form2 стал доступен в модуле Form1, в файл Form1.h надо включить директиву #include "Form2.h".
Непосредственно отображение окна выполняет метод ShowDialog, который выводит окно, как модальный диалог. Модальный диалог перехватывает все события, адресованные другим окнам приложения, в том числе и главному. Таким образом, пока модальный диалог находится на экране, продолжить работу с приложением, которое вывело модальный диалог, нельзя.
В окне О программе есть Web-ссылка. Предполагается, что в результате щелчка на ссылке в окне браузера будет открыта указанная страница. Запуск браузера обеспечивает метод (функция) Start.
// щелчок на URL-ссылке private: System::Void linkLabel1_Click(System::Object^ sender, System::EventArgs^ e) { String^ webRef = linkLabel1->Text; System::Diagnostics::Process::Start(webRef); }
Эта функция достаточно универсальна. Она обеспечивает выполнение операций с файлами и протоколами, тип которых известен операционной системе. В данном случае необходимо открыть Web-страницу, поэтому в качестве параметра функции передается адрес страницы (URL-ссылка). Следует обратить внимание, что функция Start не запускает конкретную программу, а информирует операционную систему о необходимости открыть указанный файл. Поэтому в результате щелчка на ссылке будет запущен браузер, установленный на компьютере пользователя.
Окно О программе закрывается в результате щелчка на кнопке OK. Здесь необходимо обратить внимание, в программе нет функции обработки события Click на кнопке OK. Однако в результате щелчка на кнопке OK окно программы закрывается. Это происходит потому, что свойству DialogResult кнопки button1 присвоено значение OK (по умолчанию значение этого свойства равно None).
На следующем шаге мы приведем текст приложения.