Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab4.doc
Скачиваний:
0
Добавлен:
12.11.2019
Размер:
96.77 Кб
Скачать

14

Министерство образования и науки Российской Федерации

Казанский государственный технический университет

имени А.Н. Туполева

____________________________________________

Межкафедральный филиал факультета № 4 в ОАО ICL-КПО ВС

Р.Ф. Миннибаев

Методическое руководство к

лабораторной работе

“ Работа с меню, таймерами, редакторами и кнопками.”

по дисциплине “Системное программирование”

КАЗАНЬ 2004

СОДЕРЖАНИЕ

1. Добавление меню 3

2. Добавление кнопок и редакторов 4

2.1. Создание кнопок и редакторов и обработка их сообщений 4

2.2. Помещение и получение текста из редактора (поля ввода) 5

3. Работа с таймером 7

4. Порядок выполнения работы 8

5.Контрольные вопросы 9

Приложение 10

1. Добавление меню

Для того чтобы добавить меню к главному окну приложения необходимо выполнить следующие действия:

  1. Описать меню в файле ресурсов

  2. Определить идентификаторы меню и его пунктов в заголовочном файле (resource.h)

  3. Добавить файл ресурсов к проекту

  4. Включить с помощью директивы #include заголовочный файл, где хранится идентификаторы меню и его пунктов (#include "resource.h")

  5. При определении класса окна поле lpszMenuName должно содержать идентификатор меню (для преобразования типа int в строковый необходимо использовать макрос MAKEINTRESOURCE) или указать идентификатор в качестве девятого параметра функции создания окна CreateWindow.

  6. Для того, чтобы добавить отклики на выбор того или иного пункта меню необходимо добавить обработчик сообщения WM_COMMAND

Сообщение WM_COMMAND посылается, когда пользователь выбирает пункт меню, когда управляющий элемент посылает уведомляющее сообщение родительскому окну, или когда транслируется клавиша - акселератор.

WM_COMMAND

wNotifyCode = HIWORD(wParam); // код уведомления

wID = LOWORD(wParam); // идентификатор пункта меню, //элемента управления или акселератора

hwndCtl = (HWND) lParam; // дескриптор управляющего элемента

wNotifyCode - верхнее слово wParam, определяет код уведомления, если сообщение от управляющего элемента. Если сообщение от акселератора, этот параметр равен единице, если от меню, то он равен нулю.

wID - нижнее слово wParam, определяет идентификатор пункта меню, элемента управления, акселератора.

hwndCtl – значение lParam, дескриптор элемента управления, определяет элемент управления, пославший сообщение, если сообщение от элемента управления.

Итак, в обработчике сообщения WM_COMMAND, чтобы определить от какого пункта меню пришло сообщение, необходимо проверять нижнее слово параметра wParam. Для того, чтобы идентифицировать сообщения пришедшие от элементов управления (кнопок, редакторов ..) необходимо проверить значение lParam.

Фрагмент программы:

case WM_COMMAND:

if(LOWORD(wParam)==IDM_START)

{

MessageBox(hwnd,"Timer started","Generation started",MB_OK);

SetTimer(hwnd,1,1000,NULL);

}

if(LOWORD(wParam)==IDM_STOP)

{

MessageBox(hwnd,"Timer stoped","Generation stopped",MB_OK);

KillTimer(hwnd,1);

}

if(HWND(lParam)==BtHwnd)

{

lstrcpy(msg,"0");

SendMessage(EdtHwnd,WM_SETTEXT,0,(LPARAM)(LPCTSTR)msg);

}

break;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]