Диалоговые окна
При разработке Windows-приложений часто возникает необходимость вывода различных сообщений при обработки разных событий. Чаще всего сообщения выводятся в специальные диалоговые окна.
Диалоговое окно - это форма, обладающая некоторыми специальными характеристиками. Первая отличительная черта большинства диалоговых окон - то, что их размер изменять нельзя. Кроме того, в диалоговых окнах обычно не используются элементы управления, помещаемые в заголовке обычных форм: ControlBox, MinimizeBox и MaximizeBox. Для пользователя диалоговое окно в противоположность обычным является практически неизменяемым.
Диалоговые окна бывают модальные и немодальные. Если приложение открывает модальное окно, то работа приложения блокируется до тех пор, пока не будет закрыто модальное окно. Немодальные окна могут работать одновременно с породившим их главным окном приложения. Такие окна часто используются для "плавающих" инструментальных панелей, настройки различных параметров приложения, причем отсутствие модальности позволяет использовать в приложении измененные параметры, не закрывая окна настройки этих параметров.
Windows предоставляет множество функций, сообщений и предопределенных элементов управления, которые помогают создавать и управлять диалоговыми окнами, таким образом, облегчая процесс разработки интерфейса пользователя для прикладной программы.
Окно сообщения (message box) - специальное диалоговое окно, которое прикладная программа может использовать, чтобы показывать сообщения и приглашение для обычного ввода данных. Окно сообщения обычно содержит текстовое сообщение и одну или большее количество кнопок. Прикладная программа создает окно сообщения, используя специальный класс MessageBox, определяя текст сообщения, заголовок, число и типы кнопок для показа.
Окно сообщения - модальное диалоговое окно и Windows создает его, используя те же самые внутренние функции, что и DialogBox.
Для отображения диалогового окна MessageBox используется метод Show, передав ему через параметр текст сообщения. По умолчанию в окне устанавливается кнопка ОК. Например:
MessageBox::Show("Hi! Student");
Выполнение этой инструкции приведет к открытию следующего окна:

Рисунок 3.4. – Окно сообщений
Вторым параметром в окне сообщений задается заголовок окна:
MessageBox::Show("Hi! Student!", "Welcome");
Окно с заголовком приведено на рисунке 3.5.

Рисунок 3.5. – Окно сообщений с заголовком
С помощью третьего параметра можно указать, какие кнопки необходимо расположить в окне MessageBox. Этот параметр задается константами из перечисления MessageBoxButtons (Таблица 1).
Таблица 1
| Константа | Кнопки, отображаемые в окне MessageBox |
| ОК | OK |
| OKCancel | OK, Cancel |
| YesNo | Yes, No |
| YesNoCancel | Yes, No, Cancel |
| RetryCancel | Retry, Cancel |
| AbortRetryIgnore | Abort, Retry, Ignore |
Например, мы хотим выводить окно подтверждения на завершение работы приложения. В этом случае выберем набор кнопок Yes и No.
Метод MessageBox.Show может вернуть одно из нескольких значений перечисления DialogResult ( Таблица 2).
| Таблица 2 | |
| Константа | Кнопка, при щелчке которой возвращается эта константа |
| Abort | Abort |
| Cancel | Cancel |
| Ignore | Ignore |
| No | No |
| None | Модальное диалоговое окно продолжает работать |
| OK | OK |
| Retry | Retry |
| Yes | Yes |
Метод MessageBox::Show() возвращает результат выбора пользователя, который должен быть проанализирован и в зависимости от выбора приложение должно быть закрыто или нет. Тогда текст программы примет вид:
System::Windows::Forms::DialogResult rez= MessageBox::Show("Закрыть приложение?","Завершение работы", MessageBoxButtons::YesNo);
if (rez==System::Windows::Forms::DialogResult::Yes)this->Close();
Вид окна подтверждения приведен на рисунке 3.6.

Рисунок 3.6 – Окно подтверждения
С помощью четвертого параметра метода MessageBox::Show можно выбрать один из нескольких значков для расположения в левой части диалогового окна. Он задается в виде константы константы перечисления MessageBoxIcon ( таблица 3).
| Таблица 3 | |
| Константа | Значок |
| Asterisk, Information |
|
| Error, Stop |
|
| Exclamation, Warning |
|
| Question |
|
| None | Значок не отображается |
Добавим в предыдущий пример создания окна подтверждения вывод значка вопроса:
System::Windows::Forms::DialogResult rez= MessageBox::Show("Закрыть приложение?","Завершение работы",
MessageBoxButtons::YesNo, MessageBoxIcon::Question);
Получим следующий вид окна:

Рисунок 3.7 - Окно подтверждения с выводом
вопросительной пиктограммы
Диалоговое окно можно создать не только на основе класса MessageBox, но и с использованием Windows -формы. Рассмотрим примеры проектирования простейших Windows-приложений.
Дата добавления: 2015-02-10; просмотров: 1490;
