- •Методические указания
- •Оглавление
- •Теоретический материал
- •Введение
- •Типы данных Windows. Типы указателей Windows. Использование памяти
- •Венгерская нотация. Префиксы данных
- •Общая структура Windows-приложений
- •Описание класса (стиля) окна. Структура wndclass
- •Создание (визуализация) окна
- •Сообщения. Схема обработки. Прототипы функций-обработчиков сообщений
- •Ресурсы Windows-приложений
- •Встроенные редакторы ресурсов
- •Средства организации вывода данных
- •Средства организации ввода данных
- •Вывод растровых изображений в Windows-приложениях
- •Автоматические шаблоны (каркасы) windows-приложений (тип empty, simple)
- •Создать шаблон Windows-приложения (тип Empty) и изучить его свойства
- •Модифицировать шаблон
- •Создать шаблон Windows-приложения (тип Simple) и изучить его свойства
- •Типовой шаблон (каркас) windows-приложения (тшп)
- •Изучение свойств типового шаблона
- •Изучить листинг типового шаблона
- •Воспроизвести типовой шаблон
- •Изучить свойства типового шаблона
- •Модификация типового шаблона
- •Изменить интерфейс типового шаблона
- •Добавить строку приветствия в типовой шаблон
- •Использование типового шаблона
- •Организовать вывод данных с применением функций
- •Добавить ресурс - меню
- •Организовать ввод данных с применением меню и пользовательского диалогового окна
- •Автоматический шаблон (каркас) windows-приложения (тип hello)
- •Изучение свойств шаблона (тип Hello)
- •Создать шаблон Windows-приложения (тип Hello)
- •Изучить ресурсы шаблона
- •Изучить свойства шаблона
- •Модификация шаблона (тип Hello)
- •Получить типовой шаблон приложения (тшп) из шаблона (тип Hello)
- •Организовать ввод-вывод числовых данных с применением пользовательского диалогового окна
- •Индивидуальные задания
-
Изучить свойства шаблона
Изучить свойства шаблона: - интерфейс приложения, в части облика и предоставляемых возможностей; - файловый состав проекта (выписать структуру проекта, дерево папок, состав файлов, указать назначение файлов и их соподчиненность по включению); - функциональный состав проекта (привести схему иерархии функций приложения, указать состав и соподчинение функций, описать функции, указав интерфейсы, прототипы, назначение); - ресурсный состав проекта (описать типы используемых ресурсов, их назначение, привести ID-идентификаторы); - состав классов проекта (привести диаграмму классов, используемых приложением, с указанием базовых классов, описать назначение используемых классов, их основные свойства и методы). Результаты привести в ОТЧЕТЕ.
-
Модификация шаблона (тип Hello)
-
Получить типовой шаблон приложения (тшп) из шаблона (тип Hello)
В текст приложения (например, проект - WinHelloStandardTemplate), сгенерированный мастером Win32 Application (тип Hello), внести изменения с целью получения типового шаблона приложения ТШП [см. ЛистингТШП]. Результаты привести в ОТЧЕТЕ.
Для этого: - удалить функцию-обработчик диалогового окна About и ее прототип; - убрать ссылку на ресурс-меню в параметрах описания стиля окна (например, задать wcex.lpszMenuName = 0); - удалить обработку событий меню WM_COMMAND, вывод строки “Hello” (секция WM_PAINT) в функции WndProc(…); - удалить лишние ресурсы, например меню, диалоговое окно About, используя просмотрщик ResourceView и команду cut главного меню и т.д. Откомпилировать приложение и убедиться в его работоспособности.
-
Модифицировать диалоговое окно About
В проект (WinHelloModified), созданный из шаблона Windows-приложения (тип Hello), внести изменения с целью модификации диалогового окна About (изменить пиктограмму окна, выводимый в статичных окошках текст, названия кнопок и т.п.). Сохранить. Результаты привести в ОТЧЕТЕ.
-
Изучить структуру меню шаблона (тип Hello) и внести в нее изменения
Изучить структуру меню предыдущего проекта (WinHelloModified) (в Отчете привести текст описания меню в ресурсном файле, схему меню с расшифровкой свойств подпунктов, вызываемых сообщений и выполняемых действий). Внести изменения с целью модификации меню (изменить названия пунктов, подпунктов меню на синонимы). Сохранить.
-
Структурировать типовой шаблон (ТШП)
Структурировать ТШП в стиле шаблона Windows-приложения (тип Hello). Результаты привести в ОТЧЕТЕ.
Для этого создать проект (WinStandardTemplateStruct) из типового шаблона ТШП [см. ЛистингТиповогоШаблона] и внести в него изменения: а) разделить типовой шаблон на функции; б) разделить на файлы проекта.
-
Использование шаблона (тип Hello)
-
Изменить меню шаблона (тип Hello)
В проект (WinHelloMy1), созданный на базе шаблона Windows-приложения (тип Hello), внести следующие изменения: 1) добавить новый пункт меню ПОМОЩЬ и организовать вывод по его выбору диалогового окна About (так же как это делается по выбору пункта меню Help); 2) создать новый пункт меню ИЗУЧЕНИЕ (подпункты ФункцииВывода, MsgBox, Графика, Диалог). Результаты привести в ОТЧЕТЕ.
-
Организовать вывод данных с применением функций
Модифицировать проект (WinHelloMy1): организовать вывод данных (по выбору подпункта меню ФункцииВывода пункта ИЗУЧЕНИЕ) аналогично параграфу 3.3.1, копируя при необходимости соответствующие фрагменты [см. ВыводДанных] с применением функций [см. ФункцииВводаВывода]. Результаты привести в ОТЧЕТЕ.
-
Организовать ввод-вывод данных с применением окон сообщений
Модифицировать проект (WinHelloMy1): организовать ввод-вывод данных (по выбору подпункта меню MsgBox пункта ИЗУЧЕНИЕ) аналогично параграфам п.3.3.2-3, копируя при необходимости соответствующие фрагменты [см. ИспользованиеMsgBox]. Анализировать код возврата функции MessageBox и выводить на экран сообщение о типе нажатой клавиши. Результаты привести в ОТЧЕТЕ.
-
Организовать вывод графических данных
Модифицировать проект (WinHelloMy1): организовать вывод графических данных (по выбору подпункта меню - Графика пункта ИЗУЧЕНИЕ) аналогично параграфу 3.3.4, копируя при необходимости соответствующие фрагменты [см. Графика]. Результаты привести в ОТЧЕТЕ.
-
Добавить ресурс диалоговое окно
Модифицировать проект (WinHelloMy1). Добавить к нему модальное диалоговое окно с двумя командными кнопками [см. ДиалоговоеОкно] аналогично тому, как это делалось в параграфе 3.3.5, копируя оттуда при необходимости соответствующие фрагменты. Окно должно вызываться по выбору в пункте меню ИЗУЧЕНИЕ подпункта Диалог. Приложение должно также возвращать сообщение о типе нажатой кнопки диалогового окна (например, с помощью окна сообщений). Результаты привести в ОТЧЕТЕ.
ПОРЯДОК ВЫПОЛНЕНИЯ.
-
Перейти в ресурсный просмотрщик, командой ГМ-Insert-Resource вставить в приложение новое диалоговое окно (например, с названием - ДиалоговоеОкно). Отредактировать окно в соответствии с образцом, показанным выше. В свойствах окна уточнить его ID-идентификатор (например, ID = IDD_DIALOG1).
-
Создать фунцию-обработчик диалогового окна (например, с именем Dial) по аналогии с функцией About (…). Описать в функции желаемую обработку сообщений. Прототип функции приведен ниже
LRESULT CALLBACK Dial (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) .
-
Перейти в ресурсный просмотрщик и уточнить ID-идентификатор подпункта меню с названием Диалог (пусть, например, ID = ID_MENUITEM32775).
-
В функцию WndProc() добавить обработку сообщения – выбор подпункта меню с названием Диалог (case ID_MENUITEM32775). Фрагменты текста приведены ниже
LRESULT CALLBACK WndProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId;
………………………
switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
…………………
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
case ID_MENUITEM32775:
DialogBox ( hInst, (LPCTSTR) IDD_DIALOG1, hWnd, (DLGPROC) Dial);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
………………………..
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
} .