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

В проект ТШП (WinStandardTemplateMENU), созданный из шаблона Windows-приложения (тип Simple), внести изменения: сконструировать и добавить простейшее меню, настроить его свойства, подключить к приложению. Компилировать. Изучить сгенерированный текст описания меню. Опции режимов меню указаны в [ПРИЛОЖЕНИЕ. ОпцииМеню]. Результаты привести в ОТЧЕТЕ. Примерный вид создаваемого меню показан ниже

При текстовом описании меню могут использоваться два типа операторов: MENUITEM и POPUP. Оператор MENUITEM определяет конечный пункт меню, а оператор POPUP — выпадающее меню, которое может содержать подпункты, также задавае­мые с помощью операторов MENUITEM и POPUP. Операторы имеют следующий формат:

MENUITEM "ItemName", MenuID [, Опции ]

POPUP "PopupName" [, Опции ] .

Параметр ItemName задает название пункта меню, например File или Help. MenuID — это уникальное целое значение, идентифицирующее пункт меню. Оно посылается приложению при выборе данного пункта. Обычно ID-значения хранятся в виде констант в библиотечном файле, который затем включается как в программный файл, так и в rc-файл ресурсов. Соответственно параметр PopupName определяет название выпадающего меню.

ПОРЯДОК (СХЕМА) ВЫПОЛНЕНИЯ ЗАДАЧИ.

1. Создать ресурсный файл и подключить его к проекту:

- создать файл описания ресурсов (или просто файл ресурсов *.rc), выполнив ГМ-Project-AddToProject-New-Files, и выбрать тип – Resource Script, а в качестве имени задать <ИмяПриложения.rc>. Если ИмяПриложения – main, то соответственно после создания файла ресурсов *.rc в папке проекта появятся файлы main.rc, resourсe.h;

- подключить файл ресурсов к приложению командой #include "resource.h" ;

- выполнить приложение (меню не появится!).

2. Спроектировать и описать ресурс:

- разработать вид и состав меню. Здесь два пункта: ВВОД - ЦЕЛОЕ, ВЕЩЕСТВЕННОЕ, СТРОКА и ВЫВОД - ЦЕЛОЕ, ВЕЩЕСТВЕННОЕ, СТРОКА;

- добавить новый ресурс-меню в ресурсный файл приложения ГМ-Insert-Resource-Menu;

- создать меню;

- в свойствах меню определить его дескриптор-идентификатор ID (пусть, например, ID = IDR_MENU1);

- выполнить приложение (меню не появится!).

3. Присоединить меню (его имя определено как IDR_MENU1) к приложению:

- в функции WinMain() определить ссылку на меню

wcApp.lpszMenuName = (LPTSTR) IDR_MENU1;

- выполнить приложение - меню визуализируется, но не реагирует на выбор пунктов.

4. Настроить обработку событий – выбор пункта меню (в свойствах пунктов меню найти идентификаторы пунктов, например ID_MENUITEM40001 - ID_MENUITEM40006). Внести изменения в функцию WndProc (…)

LRESULT CALLBACK WndProc (…)

{

HDC hdc;

PAINTSTRUCT ps;

switch (messg)

{

case WM_PAINT:

……………

case WM_DESTROY:

…………….

default:

…………..

}

return 0;

} ,

добавив фрагмент реакции на выбор пунктов меню, например

case WM_COMMAND: // СООБЩЕНИЕ ОТ МЕНЮ

switch (wParam) // КОД СООБЩЕНИЯ – ВЫБРАННЫЙ ПУНКТ МЕНЮ

{

case ID_MENUITEM40001:

MessageBox( hWnd,"Выбран пункт - …","МЕНЮ",MB_OK);

break;

case ID_MENUITEM40002:

MessageBox(hWnd," Выбран пункт - …"," МЕНЮ ",MB_OK);

break;

………………………

default:

return DefWindowProc(hWnd, messg, wParam, lParam);

}

break;

Здесь реакция на выбор пунктов меню состоит в подтверждении сделанного выбора через выполнение соответствующей команды MessageBox. Выполнить приложение – убедиться в корректности работы меню.