Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПОСОБИЕ СозданиеWindowsПриложений.doc
Скачиваний:
20
Добавлен:
01.03.2016
Размер:
3.35 Mб
Скачать
      1. Изучить свойства шаблона

Изучить свойства шаблона: - интерфейс приложения, в части облика и предоставляемых возможностей; - файловый состав проекта (выписать структуру проекта, дерево папок, состав файлов, указать назначение файлов и их соподчиненность по включению); - функциональный состав проекта (привести схему иерархии функций приложения, указать состав и соподчинение функций, описать функции, указав интерфейсы, прототипы, назначение); - ресурсный состав проекта (описать типы используемых ресурсов, их назначение, привести ID-идентификаторы); - состав классов проекта (привести диаграмму классов, используемых приложением, с указанием базовых классов, описать назначение используемых классов, их основные свойства и методы). Результаты привести в ОТЧЕТЕ.

    1. Модификация шаблона (тип Hello)

      1. Получить типовой шаблон приложения (тшп) из шаблона (тип Hello)

В текст приложения (например, проект - WinHelloStandardTemplate), сгенерированный мастером Win32 Application (тип Hello), внести изменения с целью получения типового шаблона приложения ТШП [см. ЛистингТШП]. Результаты привести в ОТЧЕТЕ.

Для этого: - удалить функцию-обработчик диалогового окна About и ее прототип; - убрать ссылку на ресурс-меню в параметрах описания стиля окна (например, задать wcex.lpszMenuName = 0); - удалить обработку событий меню WM_COMMAND, вывод строки “Hello” (секция WM_PAINT) в функции WndProc(…); - удалить лишние ресурсы, например меню, диалоговое окно About, используя просмотрщик ResourceView и команду cut главного меню и т.д. Откомпилировать приложение и убедиться в его работоспособности.

      1. Модифицировать диалоговое окно About

В проект (WinHelloModified), созданный из шаблона Windows-приложения (тип Hello), внести изменения с целью модификации диалогового окна About (изменить пиктограмму окна, выводимый в статичных окошках текст, названия кнопок и т.п.). Сохранить. Результаты привести в ОТЧЕТЕ.

      1. Изучить структуру меню шаблона (тип Hello) и внести в нее изменения

Изучить структуру меню предыдущего проекта (WinHelloModified) (в Отчете привести текст описания меню в ресурсном файле, схему меню с расшифровкой свойств подпунктов, вызываемых сообщений и выполняемых действий). Внести изменения с целью модификации меню (изменить названия пунктов, подпунктов меню на синонимы). Сохранить.

      1. Структурировать типовой шаблон (ТШП)

Структурировать ТШП в стиле шаблона Windows-приложения (тип Hello). Результаты привести в ОТЧЕТЕ.

Для этого создать проект (WinStandardTemplateStruct) из типового шаблона ТШП [см. ЛистингТиповогоШаблона] и внести в него изменения: а) разделить типовой шаблон на функции; б) разделить на файлы проекта.

    1. Использование шаблона (тип Hello)

      1. Изменить меню шаблона (тип Hello)

В проект (WinHelloMy1), созданный на базе шаблона Windows-приложения (тип Hello), внести следующие изменения: 1) добавить новый пункт меню ПОМОЩЬ и организовать вывод по его выбору диалогового окна About (так же как это делается по выбору пункта меню Help); 2) создать новый пункт меню ИЗУЧЕНИЕ (подпункты ФункцииВывода, MsgBox, Графика, Диалог). Результаты привести в ОТЧЕТЕ.

      1. Организовать вывод данных с применением функций

Модифицировать проект (WinHelloMy1): организовать вывод данных (по выбору подпункта меню ФункцииВывода пункта ИЗУЧЕНИЕ) аналогично параграфу 3.3.1, копируя при необходимости соответствующие фрагменты [см. ВыводДанных] с применением функций [см. ФункцииВводаВывода]. Результаты привести в ОТЧЕТЕ.

      1. Организовать ввод-вывод данных с применением окон сообщений

Модифицировать проект (WinHelloMy1): организовать ввод-вывод данных (по выбору подпункта меню MsgBox пункта ИЗУЧЕНИЕ) аналогично параграфам п.3.3.2-3, копируя при необходимости соответствующие фрагменты [см. ИспользованиеMsgBox]. Анализировать код возврата функции MessageBox и выводить на экран сообщение о типе нажатой клавиши. Результаты привести в ОТЧЕТЕ.

      1. Организовать вывод графических данных

Модифицировать проект (WinHelloMy1): организовать вывод графических данных (по выбору подпункта меню - Графика пункта ИЗУЧЕНИЕ) аналогично параграфу 3.3.4, копируя при необходимости соответствующие фрагменты [см. Графика]. Результаты привести в ОТЧЕТЕ.

      1. Добавить ресурс диалоговое окно

Модифицировать проект (WinHelloMy1). Добавить к нему модальное диалоговое окно с двумя командными кнопками [см. ДиалоговоеОкно] аналогично тому, как это делалось в параграфе 3.3.5, копируя оттуда при необходимости соответствующие фрагменты. Окно должно вызываться по выбору в пункте меню ИЗУЧЕНИЕ подпункта Диалог. Приложение должно также возвращать сообщение о типе нажатой кнопки диалогового окна (например, с помощью окна сообщений). Результаты привести в ОТЧЕТЕ.

ПОРЯДОК ВЫПОЛНЕНИЯ.

  1. Перейти в ресурсный просмотрщик, командой ГМ-Insert-Resource вставить в приложение новое диалоговое окно (например, с названием - ДиалоговоеОкно). Отредактировать окно в соответствии с образцом, показанным выше. В свойствах окна уточнить его ID-идентификатор (например, ID = IDD_DIALOG1).

  2. Создать фунцию-обработчик диалогового окна (например, с именем Dial) по аналогии с функцией About (…). Описать в функции желаемую обработку сообщений. Прототип функции приведен ниже

LRESULT CALLBACK Dial (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) .

  1. Перейти в ресурсный просмотрщик и уточнить ID-идентификатор подпункта меню с названием Диалог (пусть, например, ID = ID_MENUITEM32775).

  2. В функцию 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;

} .