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


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


EV_COMMAND(CM_ABOUT,CmAbout) , EV_COMMAND(CM_SIN,CmSin),...

Обычно функциям отклика назначают имена, схожие с идентификаторами (например, CmAbout для пункта меню с идентификатором CM_ABOUT), однако это не обязательно. Разумеется, для всех вклю­ченных в программу функций отклика необходимо объявить их прототипы (в составе класса MyWindow) и определить содержание самих функций. Исключение составляет команда "Выход". Если для этого пункта меню использовать стандартный идентификатор СМ_ЕХIТ, то всю обработку команды пользова­теля на завершение программы берет на себя Windows. Таким образом, для пункта меню с идентифика­тором CM_EXIT не надо иметь ни функции отклика, ни даже макроса EV_COMMAND в составе табли­цы откликов (разумеется, лишь в том случае, если выбором этого пункта меню мы хотим именно завер­шить программу).

Содержательная часть примера 27-2 относительно проста. В классе MyWindow объявляются два мас­сива чисел с плавающей точкой типа double для записи в них таблиц значений тригонометрических функций sin(x) и cos(x), которые затем будут выведены на экран в виде точечных графиков. Булевы пе­ременные sinIs и cosIs служат в качестве флагов, индицирующих наличие в этих массивах достоверных данных. В функциях отклика CmSin() и CmCos() вычисляются таблицы синуса и косинуса, устанавлива­ются флаги достоверности данных и вызовом функции Invalidate() инициируется посылка в приложение сообщения  WM_PAINT. В функции Paint() отклика на это сообщение на экран выводится сначала ось X (на расстоянии 150 пикселов от верхнего края окна), а затем графики тригонометрических функций с предварительной проверкой для каждой функции состояния флага достоверности. Для наглядности каж­дому графику назначается свой цвет.

Команда меню "О программе" служит, как обычно, для вывода на экран окна (в нашем примере -стандартного окна сообщения) с информацией о данном программном продукте. Для улучшения внеш­него вида окна сообщения (рис. 27.4) в замещенную нами функцию InitMainWindow() включен вызов функции EnableBWCC() класса TApplication, которая загружает библиотеку BWCC (Borland Windows Custom Controls).




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



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