Диалоговые окна
При разработке 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-приложений.
- Многофайловая организация программ
- Структура проекта в среде Visual Studio
- Создание консольного приложения в Visual Studio
- Отладка программы
- Объектно-ориентированное программирование
- Описание класса
- Описание объектов
- Методы класса
- Наследование
- Иерархия классов
- Виртуальные методы. Полиморфизм.
- Контейнерные классы
- Принципы разработки Windows – приложений
- Создание простейшего Windows-приложения
- Диалоговые окна
- Элементы управления и их свойства
- Элемент управления Button
- Элемент управления TextBox
- Элемент управления Label
- Элемент управления ListBox
- 3.3.5. Элемент управления ComboBox
- Элемент управления RadioButton
- Элемент управления CheckBox
- Элемент управления RichTextBox
- Чтобы загрузить файл в элемент управления RichTextBox в процедуре обработки события для кнопки Button1:
- Элемент управления NumericUpDown
- Лабораторная работа 1 Создание простейшего Windows-приложения
- Лабораторная работа 2 Создание Windows-приложения для обработки массива
- Лабораторная работа 3 Создание меню в Windows-приложение