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


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


return  0; } void MyApp::InitMainWindow(void){

SetMainWindow(new MyWindow(0,"Программа 29-1")); }

/*Глатная функция приложения OwlMain*/ int OwlMain(int,char*[]){ return MyApp().Run(); }

Как известно, форма курсора и вид реакции на сообщения Windows являются атрибутами класса ок­на Windows. Для того, чтобы отдельным фрагментам строк текста придать специфический курсор и чув­ствительность к щелчкам мышью, их следует оформить в виде дочерних окон - представителей некото­рого оконного класса, для которого заданы функция отклика на сообщения мыши и дескриптор соответ­ствующего курсора. Фрагменты же строк, нечувствительных к щелчкам мыши, должны быть оформле­ны, как окна другого класса, для которого не задана реакция на щелчки мышью и которому, к тому же, может быть назначен стандартный (или любой другой) курсор. В рассматриваемом примере от класса OWL TWindow образованы три производных класса - класс Plain для "простых" строк с номерами глав, класс Quest для "вопросных" строк с названиями глав и класс Contents всплывающих окон с перечнем разделов каждой главы. От каждого класса образовано по 5 объектов соответственно запланированному объему выводимой на экран информации. Форма и расположение на экране дочерних окон классов Plain и Quest показано на рис. 29.2. Приведенное на рисунке изображение легко получить, дополнив стиль окон этих классов (константа winStyle, описанная в списке глобальных переменных) стилем WS_BORDER.

Оконные классы Windows идентифи­цируются их именами. Однако при обра­зовании классов, производных от TWin­dow, все они получают имена OwlWin-dow и, соответственно, один и тот же на­бор характеристик. Для того, чтобы клас­сам, образованным в программе, можно было назначать различающиеся характе­ристики, им следует дать уникальные имена.


272                                                                                                                                 Глава 29




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