- •Процедурное программирование
- •Регистрация класса окна
- •Создание окна
- •Командная строка приложения
- •Функции окна приложения
- •Сообщение wm_destroy
- •Вывод в рабочую область окна
- •Контекст устройства и область отрисовки.
- •Сообщение wm_paint
- •Окно-список
- •Заполнение окна-списка
- •Список файлов
- •Изменение цвета органов управления
- •Комбинированный список
- •Меню и назначение клавиш
- •Создание описания меню в файле ресурсов
- •Сообщения меню
- •Диалоговые окна ( диалоги )
- •Определение диалоговых окон в файле ресурсов
- •Диалоговое окно About
- •Функция диалогового окна
- •Взаимодействие с органами управления диалоговых окон
- •Окно сообщений
- •Ввод данных
- •Извлечение данных из диалога
- •Ввод - вывод данных посредством передачи сообщений
- •Функция CreateFile ( )
- •Функция WriteFile ( )
- •Отображение файла в память
- •Функция CreateFileMapping().
- •Функция MapViewOfFile()
- •Работа с отображенным файлом
- •И н т е р ф е й с графических устройств (gdi)
- •Контекст устройства
- •Получение индекса контекста устройства
- •Получение информации из контекста устройства
- •Атрибуты контекста устройства
- •Сохранение изменений в контексте устройства
- •Система координат в Windows
- •Режимы отображения
- •Системы координат
- •Режим mm_text
- •Метрические режимы
- •Режим mm_isotropic
- •Режим mm_anisotropic
- •Вывод графических объектов
- •Двумерные объекты
- •Сегмент и сектор эллипса
- •Библиографический список
Окно сообщений
Окно сообщений предназначено для вывода на экран только одного сообщения.
Окно сообщения ( message box ) – это простейшее диалоговое окно , для использования которого необходимо вызвать функцию Messagebox . Формат вызова этой функции приведен ниже :
nItem = Messagebox ( hParentWnd, lpszText, lpszCaption, nType );
Первый параметр функции содержит индекс родительского окна. При закрытии окна сообщений фокус ввода будет передан родительскому окну. Если вы вызываете функцию Messagebox из диалогового окна, то первый параметр функции должен быть равен дескриптору диалогового окна. Если вы не указываете дескриптор диалогового окна, то первый параметр должен быть равен NULL.
Второй параметр – lpszText – содержит дальний указатель на строку символов, оканчивающуюся нулем, которая отображается внутри окна сообщений. При необходимости Windows будет разбивать выводимый текст на несколько строк. Вы можете также сами использовать символы перевода строки и возврата каретки.
Третий параметр – lpszCaption – либо дальний указатель на строку, содержащую заголовок окна сообщений, либо NULL. Во втором случае заголовок окна сообщений содержит надпись Error.
Последний параметр функции – nType – содержит набор флагов, объединенных при помощи булевой операции « или ».
Существует несколько групп флагов, которые можно использовать в этом параметре :
Флаги возможных действий
Флаги MB_OK, MB_OKCANCEL, MB_YESNO, MB_YESNOCANCEL, MB_RETRYCANCEL и MB_ABORTRETRYIGNORE определяют , какие кнопки будут отображаться в окне сообщений и, следовательно, какие действия пользователь может предпринять при появлении окна сообщений. Возвращаются значения : IDOC, IDCANCEL, IDYES, IDNO, IDRETRY и IDABORT.
Флаги определения типа кнопок
Задают тип кнопок, которые будут отображены в окне сообщения. Возможные значения – MB_DEFBUTTON1, MB_DEFBUTTON2 И MB_DEFBUTTON3.
Флаги определения стандартных пиктограмм
Определяют, какую стандартную пиктограмму следует отобразить в окне сообщений. Можно использовать один из следующих флагов: MB_ICONASTERISK, MB_ICONEXCLAMATION, MB_ICONHAND и MB_ICONQUESTION.
Класс модальности
Указав одно из двух возможных значений MB_APPLMODAL и MB_SYSTEMMODAL – вы определите, является окно сообщений модальным или системным. По умолчанию установлен флаг MB_APPLMODAL.
Флаг отказа от фокуса ввода
Флаг MB_NOFOCUS используется в том случае, если вы не хотите, чтобы окну сообщения был передан фокус ввода.
Все описанные выше флаги определены в файле windows.h.
Пример использования функции MessageBox:
MessageBox ( hWnd, «Command not implemented», «Edit», MB_ICONASTERISK | MB_OK );
Ввод данных
Для вывода данных на экран используются обычно статические поля или редактируемые поля.
Вывод числовых данных аналогичен выводу текста, но в начале числовые данные помещаются в символьный массив с помощью функции sprintf(), а затем выводятся в соответствующее окно с помощью функции
SetDlgItemText ( hDlg, nID, szString ),
где
hDlg – дескриптор диалогового окна;
nID – идентификатор органа управления;
szString – указатель на выводимую символьную строку.