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


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


Для сокращения текста приложения в нем не предусмотрена маркировка выбранного в плавающем меню пункта, что, разумеется, снижает наглядность использования этого меню (рис. 27.6).

Для маркировки команд меню "Графики" используется созданные ранее указатель menu на основное меню главного окна. Сама маркировка (а также ее снятие) осуществляется в функциях обработки сооб­щений от команд этого меню CmSin(), CmCos() и др. С помощью функции GetMenuState() программа по­лучает состояние пункта меню, по которому произведен щелчок левой клавишей мыши, и если этот пункт не помечен маркером, то вычисляется таблица значений соответствующей тригонометрической функции, устанавливается флаг индикации готовности данных, с помощью функции CheckMenuItem() данный пункт меню помечается маркером-галочкой и, наконец, вызовом функции Invalidate() иницииру­ется перерисовывание всего окна.

Если результат функции GetMenuState() показывает, что данный пункт меню уже отмечен, то массив значений данной тригонометрической функции затирается, той же функцией CheckMenuItem() маркер удаляется, после чего инициируется перерисовывание экрана, на котором теперь уже не будет удаленно­го графика.


Глава 28 Диалоговые окна

Исходный текст программы с простым модальным диалогом

На рис. 28.1. продемонстрировано функционирование программы 28-1.

//Приложение 28-1. Простейший модальный диалог.

//Файл 28-1.h #define About 100 #define CM_ABOUT 200 #define CM_EXIT 24310

//Файл 28-1.rc #include "28-1.h" MainMenu MENU{ POPUP "Файл")

MENUITEM "О программе...",CM_ABOUT MENUITEM SEPARATOR MENUITEM "Выход",CM_EXIT } }

MyIcon ICON "rabbit.ico" About DIALOG 7, 37, 222, 105

STYLE DS_MODALFRAME|WS_POPUP|WS_VISIBLE|WS_CAPTION|WS_SYSMENU CLASS "bordlg" CAPTION "О программе" FONT 8, "MS Sans Serif"{

CONTROL "",IDOK,"BorBtn",BS_PUSHBUTTON|WS_CHILD|WS_VISIBLE|

WS_TABSTOP,144,75,37,25

CONTROL "", -1,"BorShade",BSS_HDIP|BSS_LEFT|WS_CHILD|WS_VISIBLE,6,66,206,2 CTEXT "В данной программе создается простейший модальный диалог без" " каких-либо органов управления (не считая кнопки выхода). " "Органы управления диалогом (поля ввода текста, различные кнопки) "




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