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


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


В рассматриваемом примере не предусмотрено какого-либо "управления" графиками - после первого выполнения команд "Синус" или "Косинус" они остаются как в памяти, так и на экране. В этом случае не было необходимости вычислять их заново при каждом выполнении функции Paint(); заполнить массивы


250                                                                                                                                 Глава 27



sine[] и cosine[] можно было на этапе инициализации, например, в конструкторе MyWindow. В сле­дующем примере, где предусмот­рен вывод любой комбинации графиков по желанию, их вычис­ление в функции Paint() становит­ся более оправданным.

Действия с объектами меню

Базовые операции с меню, рассмотренные в предыдущем примере, не требовали использо­вания классов меню, определен­ных в библиотеке OWL - доста­точно было установить меню с помощью функции AssignMenu() и предусмотреть таблицу и функ­ции откликов на команды меню.


Если же в программу желательно включить элементы динамического управления меню, такие, как до­бавление, удаление или модификация команд меню (прикладного или системного), добавление к пунк­там меню маркеров, гашение недоступных пунктов, вывод меню в произвольное место окна и др., то следует обратиться к классам меню библиотеки OWL. В OWL описаны три класса меню - класс TMenu, в котором определено большинство функций, требуемых для работы с меню, класс TSystemMenu, назна­чение которого видно из названия, и класс TPopupMenu для работы со всплывающими меню. В примере 27-3 будет продемонстрировано использование классов TMenu и TPopupMenu.

Пример 27-3 является развитием предыдущего. В меню "Графики" добавлены команды для вывода на экран еще двух тригонометрических функций - sin(x)/x и cos(x)/x. Предусмотрена возможность ото­бражения на экране любого сочетания четырех доступных графиков, причем вывод графика сопровожда­ется появлением маркера перед соответствующей командой меню, а вторичный выбор этой команды га­сит как маркер, так и сам график. Щелчком правой клавиши мыши активизируется плавающее меню, в котором можно выбрать масштаб вывода графиков. На рис. 27.5 показан вывод приложения 27-3 в одном из вариантов.




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