Одна из главных целей операционной системы Microsoft Windows – дать человеку, который хотя бы немного знаком с системой, возможность сесть за компьютер и запустить любое приложение без предварительной подготовки


Задание № 5. Создайте программу для своего собственного не- модального окна. 694.8. Стандартные диалоговые окна



Pdf просмотр
страница7/7
Дата28.11.2016
Размер0.9 Mb.
Просмотров1538
Скачиваний0
1   2   3   4   5   6   7
Задание № 5. Создайте программу для своего собственного не- модального окна.

69
4.8. Стандартные диалоговые окна
Стандартные диалоговые окна – это окна, предназначенные для ча- сто используемых действий. Все они производные от класса CDialog. Вот их список:

CColorDialog – выбор цвета из палитры;

CFileDialog – открытие / сохранение файла;

CFindReplaceDialog – поиск / замена текста;

CFontDialog – выбор шрифта;

CPageSetupDialog – настройка параметров страницы документа для печати;

CPrintDialog – выбор принтера.
Все окна, кроме CFindReplaceDialog, модальные, то есть достаточно завести соответствующую переменнную класса, а затем вызывать функ- цию DoModal.
Диалоговое окно выбора цвета создается с помощью конструктора и функции DoModal:
CColorDialog cDlg(RGB(0,255,100),CC_RGBINIT,this); cDlg.DoModal();
Первым задается начальный цвет в палитре RGB, затем внешний вид и третьим параметром – указатель на родительское окно.
Внешний вид может быть следующим:

CC_FULLOPEN – при открытии окна сразу доступна полная палитра;

CC_PREVENTFULLOPEN – нет кнопки, открывающей полную палитру;

CC_RGBINIT – устанавливает начальный цвет;

CC_SHOWHELP – кнопка помощи – «?» является доступной.
Рис. 15. Два внешних вида диалогового окна «Цвет»
Для получения цвета используется функция GetColor().
Диалоговое окно открытия / сохранения файла (рис. 16) создается аналогично диалоговому окну выбора цвета:

70
CFileDialog fDlg(FALSE, "*.txt","Document", OFN_HIDEREADONLY |
OFN_OVERWRITEPROMPT,"Text|*.txt|",this); fDlg.DoModal();
Первый аргумент в функции fDlg() указывает на тип окна (TRUE – окно открытия файла, FALSE – окно сохранения файла). Следующие два аргумента – это расширение и имя файла по умолчанию. Затем идет ар- гумент вида окна. Предпоследний аргумент указывает строку фильтра, последний является указателем на родительское окно.
Виды окна:

OFN_ALLOWMULTISELECT – разрешает выбор многих файлов;

OFN_CREATEPROMPT – подтверждение, если выбран несуществу- ющий файл;

OFN_DONTADDTORECENT – не добавляет файл в список недавно используемых документов;

OFN_EXPLORER – окно в стиле проводника;

OFN_FILEMUSTEXIST – отображает только существущие файлы;

OFN_HIDEREADONLY – не показывает файлы с атрибутом «только для чтения»;

OFN_NOCHANGEDIR – восстанавливает внешний вид папки, если пользователь создал папку, а потом нажал кнопку «Отмена»;

OFN_NONETWORKBUTTON – скрывает кнопку «Сетевое окружение»;

OFN_SHOWHELP – кнопка помощи – «?» является доступной.
Формат строки фильтра:
Тип файла
1 |
Сопоставляемое расширение
1;
Ещё
расширение
|
Тип файла
2 |
Сопоставляемое расширение
2
|...
Тип файла
_n |
Сопоставляемое расширение
_n ||
Тип файла – это то, что увидит пользователь, а расширение будет обрабатываться самой программой. Все данные отделяются знаком |. А расширения (если их несколько) – ; (точка с запятой). В конце стоит знак
|| (две черты).
Рис. 16. Внешний вид диалогового окна «Открыть»

71
С помощью функций GetPathName(), GetFileName(), GetFileExt() можно узнать путь к файлу, имя файла, расширение файла. Файл откры- вается с помощью функции CFile::Open().
Окно выбора шрифта (рис. 17) можно создать без всяких парамет- ров:
CFontDialog cFD; cFD.DoModal();
Но при создании можно установить начальный шрифт, используя указатель на струкутуру LOGFONT, которая будет содержать все пара- метры начального шрифта; параметры окна; указатель на контекст прин- тера; указатель на родительское окно.
Возможные параметры окна:

CF_APPLY – отображает кнопку «Применить»;

CF_BOTH – отображает шрифты для экрана и печати;

CF_TTONLY – отображает только шрифты «True Type»;

CF_EFFECTS – позволяет изменять начертание шрифта (цвет, жир- ность, подчеркивание и т. п.);

CF_NOVECTORFONTS – запрет на векторные шрифты;

CF_PRINTERFONTS – отображает только шрифты для печати;

CF_SCALABLEONLY – отображает только масштабируемые шрифты;

CF_SCREENFONTS – отображает только экранные шрифты;

CF_SHOWHELP – кнопка помощи – «?» является доступной.
Рис. 17. Внешний вид диалогового окна «Шрифт»
Получить шрифт можно с помощью функции GetCurrentFont (указа- тель на структуру LOGFONT). Характеристики шрифта получают с по- мощью функций: GetFaceName(), GetStyleName(), GetSize(), GetColor(),
GetWeight(), IsStrikeOut(), IsUnderline(), IsBold(), IsItalic().

72
Задание № 6. Создайте программу, отображающую три стан- дартных диалоговых окна.
4.9. Содержание отчета
Отчет по лабораторной работе представляет собой распечатку со- зданных четырех программ (задания № 2, 4–6) с комментариями. Первая программа – отображение диалогового окна, вторая программа – диало- говое окно с элементами управления, третья программа – немодальное диалоговое окно, четвертая программа – отображение стандартных диа- логовых окон.
Также в отчет рекомендуется включить необходимые скриншоты со- зданных программ. Отчет должен быть подготовлен с помощью Microsoft
Word и содержать титульный лист установленного образца.
4.10. Контрольные вопросы
1.
Дайте определение понятию «ресурс».
2.
Что такое модальное диалоговое окно?
3.
Что такое немодальное диалоговое окно?
4.
Что такое стандартное диалоговое окно?
5.
Как создается пользовательское диалоговое окно?
6.
Перечислите не менее 7 пользовательских элементов управления.
7.
Какие свойства есть у элемента «Список»?
8.
Какие свойства есть у элемента «Рисунок»?
9.
Какие свойства есть у элемента «Кнопка»?
10.
Какие свойства есть у элемента «Флажок»?
11.
Какие свойства есть у элемента «Поле ввода»?
12.
Какие свойства есть у элемента «Переключатель»?
13.
Опишите процедуру создания немодального диалогового окна.
14.
Поясните общий принцип работы со стандартными диалоговыми ок- нами.
15.
Какие виды кнопок существуют?
16.
Как задать порядок обхода элементов?
17.
Как осуществляется обмен данными с диалоговым окном?
18.
Как создается пользовательское сообщение?
19.
Как осуществляется связь родительского окна с немодальным диало- говым окном?
20.
Перечислите виды стандартных диалоговых окон.
4.11. Задачи на самостоятельную работу
1.
Создайте программу, содержащую два модальных диалоговых окна, в одном из которых устанавливаются и вводятся параметры (по два параметра), а во втором выводится результат расчета по любым ма-

73
тематическим формулам в виде списка (задача простой сложности – программа описана в литературе).
2.
Создайте программу, содержащую диалоговое окно для работы с ба- зой данных (задача простой сложности – программа описана в лите- ратуре).
3.
Создайте программу, демонстрирующую наглядное копирование до- кументов из одного диалогового окна в другое – копирование с по- мощью мыши (задача средней сложности – различные части про- граммы описаны в литературе).
4.
Создайте программу, которая включает в себя диалоговое окно с внедренным объектом – Internet Explorer для просмотра HTML- файлов (задача повышенной сложности – различные части програм- мы опубликованы в Интернете).
4.12. Методика проведения лабораторной работы № 3
Лабораторная работа № 3 проводится на пяти занятиях. Перед её началом студенты должны ознакомиться с текстом лабораторной работы
(пп. 4.1–4.9).
Занятие № 1 (2 аудиторных часа). Изучение теоретического матери- ала по пп. 4.1–4.5. Подготовка ответов на контрольные вопросы.
Занятие № 2 (2 аудиторных часа). Изучение теоретического матери- ала по п. 4.6. Подготовка ответов на контрольные вопросы. Выполнение заданий № 1, 2. Подготовка отчета по п. 4.9.
Занятие № 3 (2 аудиторных часа). Изучение теоретического матери- ала по пп. 4.7–4.9. Подготовка ответов на контрольные вопросы. Выпол- нение заданий № 3, 4. Подготовка отчета по п. 4.9.
Занятие № 4 (2 аудиторных часа). Выполнение задания № 5. Подго- товка отчета по п. 4.9.
Занятие № 5 (2 аудиторных часа). Выполнение задания № 6 и подго- товка отчета по п. 4.9. Защита отчета по лабораторной работе.
Повышение рейтинговой оценки за лабораторную работу возможно при выполнении одного из заданий п. 4.11 во внеаудиторное время.

74
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
1.
Мешков, А. Visual C++ и MFC [Текст] / А. Мешков, Ю. Тихомиров. – СПб: BHV –
Санкт-Петербург, 1997. – 1040 c.
2.
Олафсен, Ю. MFC и Visual C++ 6 [Текст] / Ю. Олафсен, К. Скрайбнер, К. Д. Уайт. –
СПб: ДиаСофтЮП, 2004. – 980 с.
3.
Шилдт, Г. MFC: основы программирования [Текст]: пер. с англ. и под ред. В. Р. Гин- збурга / Г. Шилдт. – Киев: BHV, 1997. – 556 с.

75
СОДЕРЖАНИЕ
Введение............................................................................................................
3 1. Основы программирования под Windows ................................................. 1 1.1. Что такое MFC? ................................................................................ 1 1.2. Многозадачность в Windows ........................................................... 2 1.3. Взаимодействие программ и Windows ........................................... 2 1.4. Основы программирования под Windows ...................................... 3 1.5. Типы данных в Windows .................................................................. 4 1.6. Соглашение об использовании имен .............................................. 4 1.7. Иерархия классов MFC .................................................................... 5 1.8. Глобальные функции и функции-члены в MFC ............................ 6 1.9. Файл AFXWIN.H .............................................................................. 6 1.10. Контрольные вопросы .................................................................... 7 2. Лабораторная работа № 1. Создание простых приложений Windows .... 8 2.1. Каркас MFC-программы .................................................................. 8 2.2. Подробнее о создании масштабируемых окон ............................ 13 2.3. Содержание отчета ......................................................................... 16 2.4. Контрольные вопросы .................................................................... 16 2.5. Задачи на самостоятельную работу .............................................. 17 2.6. Методика проведения лабораторной работы №1 ........................ 17 3. Лабораторная работа № 2. Обработка сообщений .................................. 18 3.1. Что такое сообщения? .................................................................... 18 3.2. Обработка сообщений в MFC ........................................................ 19 3.3. Включение макрокоманд в очередь сообщений .......................... 19 3.4. Включение обработчиков сообщений в описание класса ........... 20 3.5. Обработка сообщений от клавиатуры .......................................... 21 3.6. Контекст устройства ...................................................................... 24 3.7. Обработка сообщения WM_PAINT .............................................. 25 3.8. Обработка сообщений мыши......................................................... 28 3.9. Генерация сообщения WM_PAINT............................................... 30 3.10. Обработка сообщения WM_DESTROY ...................................... 33 3.11. Обработка сообщений таймера ................................................... 33 3.12. Основные типы сообщений Windows ......................................... 36 3.13. Содержание отчета ....................................................................... 43 3.14. Контрольные вопросы .................................................................. 43 3.15. Задачи на самостоятельную работу ............................................ 44 3.16. Методика проведения лабораторной работы № 2 ..................... 44 4. Лабораторная работа № 3. Диалоговые окна .......................................... 45 4.1. Ресурсы ............................................................................................ 45 4.2. Виды диалоговых окон .................................................................. 45 4.3. Создание диалогового окна в редакторе ресурсов ...................... 46

76 4.4. Модальные диалоговые окна ......................................................... 48 4.5. Обмен данными с диалоговым окном .......................................... 49 4.6. Элементы диалогового окна и их свойства .................................. 51 4.7. Немодальные диалоговые окна ..................................................... 66 4.8. Стандартные диалоговые окна ...................................................... 69 4.9. Содержание отчета ......................................................................... 72 4.10. Контрольные вопросы .................................................................. 72 4.11. Задачи на самостоятельную работу ............................................ 72 4.12. Методика проведения лабораторной работы № 3 ..................... 73
Список рекомендуемой л итературы ............................................................. 74

77






Олег Олегович Привалов
Илья Викторович Степанченко
ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО MFC
Учебное пособие
Редактор Пчелинцева М. А.
Темплан 2007 г., поз. № 31.
Лицензия ИД № 04790 от 18 мая 2001 г.
Подписано в печать 27. 12. 2007 г. Формат 60×84 1
/
16
Бумага листовая. Печать офсетная.
Усл. печ. л. 5,0. Усл. авт. л. 4,81.
Тираж 100 экз. Заказ №
Волгоградский государственный технический университет
400131 Волгоград, просп. им. В. И. Ленина, 28.
РПК «Политехник»
Волгоградского государственного технического университета
400131 Волгоград, ул. Советская, 35.



Поделитесь с Вашими друзьями:
1   2   3   4   5   6   7


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал