Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 45


if(sinIs==true)//Если данные по синусу есть,

for(int i=0;i<640;i++)//то в цикле по 640 точкам


Обработка сообщений Windows                                                                                            249

dc.SetPixel(i,y0-(int)(sine[i]*100),TColor::LtBlue);//выводим точки графика if(cosIs==true)//Если данные по косинусу есть,

for (int i = 0; i<640; i++) //то в цикле по

640  точкам dc.SetPixel(i,y0-(int)(cosine[i]*100),TColor::LtGreen);//выводим точки графика

} /*Главная функция приложения OwlMain*/

int OwlMain(int,char*[]){return myApp().Run();}

Обработка сообщений от пунктов меню

Меню главного окна приложения описывается, как обычно, в файле ресурсов .rс. Значения иденти­фикаторов пунктов меню (имена идентификаторов могут быть любыми) определены в файле .h. Для пункта выхода из приложения использован стандартный идентификатор СМ_ЕХIТ (со значением 24310), описанный в файле window.rh. С таким же успехом можно было использовать другое обозначение (на­пример, CM_QUIT) или присвоить идентификатору СМ_ЕХIТ произвольное значение.

Для того, чтобы меню появилось в окне приложения, достаточно вызвать функцию AssignMenu(), принадлежащую классу TFrameWindow, с указанием в качестве параметра имени меню из файла ресур­сов; этот вызов удобнее всего выполнить в

конструкторе класса MyWindow. Как и в слу­чае API Windows, обработку сообщений от "корневых" пунктов меню (в нашем случае это пункты "Файл" и "Графики") Windows берет на себя: при выборе этих пунктов Win­dows отображает на экране соответствующие всплывающие меню (рис. 27.3). Нам же надо обрабатывать сообщения от пунктов всплы­вающих меню (их часто называют командами

меню), для чего необходимо включить в таблицу откликов сообщения EV_COMMAND - по одному на каждую команду меню (обратите внимание на отсутствие в обозначении сообщения EV_COMMAND префикса WM).

В отличие от макросов типа EV_WM_TIMER или EV_WM_GETMINMAXINFO, которые при расши­рении задают имена функций отклика, макрос EV_COMMAND требует указания двух параметров -идентификатора соответствующего пункта меню и имени прикладной функции отклика, предназначен­ной для обработки сообщения от этого пункта:




Начало  Назад  Вперед



Книжный магазин