Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3 семестр, WinAPI, MFC.pdf
Скачиваний:
370
Добавлен:
15.06.2014
Размер:
6.17 Mб
Скачать

Стандартные диалоговые окна.

Окна сообщений

Окна сообщений - это специальные диалоговые окна, отображающие указанное сообщение, заголовок и комбинацию кнопок и значков.

Использование: для отображении короткого информационного сообщения для пользователя и представлении ограниченного числа вариантов выбора.

Создание: при помощи функции MessageBox. Приложение, вызывающее эту функцию, определяет текстовую строку для отображения и множество флагов (с префиксом MB_), указывающих тип и внешний вид этого окна сообщения:

int iCode=MessageBox(hWnd,”Текст сообщения”,“Заголовок окна”, MB_OK);

hWnd - дескриптор того окна (обычного или диалогового), которое создает окно сообщения.

Набор флагов ,являющихся 4 параметром функции MessageBox , связанных с помощью поразрядного ИЛИ:

Первая группа флагов задает кнопки, которые появляются в нижней части окна сообщения: MB_OK (по умолчанию), MB_OKCANCEL, MB_YESNO, MB_YESNOCANCEL, MB_RETRYCANCEL, MB_ABORTRETRYIGNORE и MB_HELP. Эти флаги позволяют использовать максимум четыре кнопки.

Вторая группа флагов задает то, какая из этих четырех кнопок получит по умолчанию фокус ввода: MB_DEFBUTTON1 (по умолчанию), MB_DEFBUTTON2, MB_DEFBUTTON3 и MB_DEFBUTTON4.

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

MB_ICONASTERISK) – информационный значок, MB_ICONWARNING (или MB_ICONEXCLAMATION) – значок напоминания, MB_ICONERROR (или

MB_ICONSTOP, или MB_ICONHAND) – значок выяснения намерений пользователя, MB_ICONQUESTION – значок информирования о наличии серьезных проблем.

Четвертый набор флагов определяет, является ли окно сообщения модальным окном приложения – MB_APPMODAL, или это системное модальное окно –

MB_SYSTEMMODAL.

Диалоговые окна общего пользования

Диалоговые окна общего пользования – это ряд наиболее часто употребляемых диалоговых окон.

Использование:

стандартном вид, вызов одной из функций общего диалогового окна как часть

Win32 API.

Настройка общих диалоговых окон приложения, реализуя специальные функции и создавая шаблоны пользовательских диалоговых окон.

Функции и структуры, которые необходимы для использования диалоговых окон общего пользования, определяются в файле commdlg.h:

#include <commdlg.h>

! Файл comdlg32.lib - библиотека импорта диалоговых окон общего пользования, файл comdlg32.dll - это динамически подключаемая библиотека, в которой содержатся шаблоны и процедуры диалога.

Типы диалоговых окон общего пользования:

диалоговые окна открытия (“Open”) и сохранения (“Save As”) файлов – предоставление пользователю возможность просмотреть файловую систему и выбрать файл для чтения или записи.

Диалоговое окно “Open” открывается при вызове функции GetOpenFileName. Единственным параметром функции является указатель на структуру OPENFILENAME. Члены этой структуры обеспечивают значения для инициализации диалогового окна.

int iCode=GetOpenFileName(&ofn);

Диалоговое окно “Save As” отображается в ответ на вызов функции GetSaveFileName. Эта функция также имеет единственный параметр - указатель на структуру OPENFILENAME.

int iCode=GetSaveFileName(&ofn);

выбора цвета (“Color”)

Диалоговое окно “ChooseColor” появляется в ответ на вызов функции ChooseColor. Приложения могут управлять начальным значением в этом диалоговом окне через указатель на структуру CHOOSECOLOR – единственный параметр, передаваемый функции ChooseColor (поле rgbResult этой структуры отвечает за выбранный цвет). Посредством этой структуры приложения могут также настраивать поведение диалогового окна, поддерживая обработчик и имя шаблона пользовательского диалогового окна.

шрифта (“Font”)

Диалоговое окно “ChooseFont” появляется в ответ на вызов функции ChooseFont. Инициализируется оно через структуру CHOOSEFONT, которую также можно использовать для указания пользовательского обработчика и имени шаблона диалогового окна. Переменная lpLogFont этой структуры указывает на структуру LOGFONT, которая используется для инициализации диалогового окна и получения информации о новом выбранном шрифте при закрытии диалогового окна.

печати (“Print”) – выбор принтера и его инициализация; и ее настройки (“Page Setup”)- выбор источника и типа бумаги

Для использования диалогового окна “Print” приложение должно сначала подготовить содержимое структуры PRINTDLG, а затем вызвать функцию PrintDlg с указателем на эту структуру – единственным параметром этой функции.

Диалоговое окно “Page Setup” отображается при вызове приложением PageSetupDlg. Единственным параметром этой функции является указатель на структуру PAGESETUPDLG. Через эту структуру приложение может управлять элементами управления диалогового окна, а при его закрытии получать доступ к выбору пользователя.

поиска (“Find”) и замены (“Replace”) текста - интерфейс, посредством которого пользователь может ввести текстовую строку для поиска и, если необходимо, строку для замены.

!Эти диалоговые окна являются немодальными; все другие общие диалоговые окна работают как модальные.

Диалоговое окно “Find” отображается в ответ на вызов функции FindText. Эта функция возвращает дескриптор диалогового окна, который можно использовать в основном цикле сообщений в вызове функции IsDialogMessage. Инициализация диалогового окна осуществляется через структуру FINDREPLACE, включающую все значения, которые пользователь может ввести в диалоговом окне.Общается со своим окном-владельцем через последовательность сообщений. Перед вызовом FindText приложение должно через вызов функции RegisterWindowMessage зарегистрировать строку сообщения “FINDMSGSTRING”. Диалоговое окно “Find” будет посылать приложению это сообщение при вводе пользователем нового значения поиска.

Диалоговое окно “Replace” очень похоже на “Find” и инициализируется через ту же структуру FINDREPLACE. Это диалоговое окно отображается в ответ на вызов функции ReplaceText.

При получении сообщения FINDMSGSTRING от диалогового окна “Find” и “Replace” приложение может проверить переменную flags структуры FINDREPLACE для определения необходимого пользователю действия.

Контрольные вопросы

1.Чем являются окна сообщений? При помощи какой функции они создаются?

2.Как можно повлиять на состав элементов управления окна сообщений?

3.Для чего приложение используют стандартные диалоговые панели выбора файла? Какие панели такого типа существуют? Какие функции предназначены для их создания?

4.Для чего предназначен диалог выбора цвета? Как его создать?

5.Что приложение может получить в результате работы диалоговой панели выбора шрифта? Как отобразить эту панель на экране?

6.Какие диалоговые окна предназначены для выбора принтера, его инициализации, для выбора источника и типа бумаги?