В описание класса включается конструктор,
SetMainWindow(new MyWindow(0,"Программа 29-3",new MyClient));
Далее описывается класс MyClient окна-клиента (рабочего окна приложения). В описание класса включается конструктор, прототипы функций откликов на сообщения от пунктов меню (и инструментов) и сама таблица откликов. Несколько необычно выглядит конструктор этого класса
MyClient():TWindow(0,""){}
Для того, чтобы правильно описать параметры этого конструктора, мы должны рассмотреть возможные формы конструкторов класса TWindow. В этом классе предусмотрены конструкторы двух видов:
TWindow(HWND hWnd, TModule* module = 0);
TWindow(TWindow* parent, const char far* title = 0, TModule* module = 0);
Окна и их оформление 281
Первый конструктор используется как псевдоним для не OWL-окна и нас интересовать не будет. Второй конструктор требует трех параметров, из которых два назначаются по умолчанию и, вроде бы, могут опускаться. Однако мы не можем объявить конструктор класса MyClient в единственным параметром
MyClient():TWindow(0){}
потому что в этом случае компилятор не сможет определить, каким из двух перегруженных конструкторов базового класса мы хотим воспользоваться. По той же причине нельзя объявить наш конструктор в форме
MyClient():TWindow(0,0){}
так как и в этом случае двусмысленность не ликвидируется. Таким образом, у нас остаются только две возможности: объявить конструктор с тремя параметрами (три параметра имеет только нужный нам конструктор TWindow) или указать в качестве второго параметра не нулевой указатель, а указатель на пустую строку (поскольку для окна-клиента заголовок не нужен):
MyClient():TWindow(0,0,0){} MyClient():TWindow(0,""){}
Нами выбран второй из этих вариантов.
Теперь о значении первого параметра. Вообще, в качестве первого параметра должен использоваться указатель на родительский модуль, но если значение этого параметра равно 0, то используются определенные правила умолчания для автоматической подстановки неопределенного параметра. Для порожденных окон подставляется указатель на модуль родителя, а для окон без родителя - указатель на модуль приложения, что позволяет, в частности, использовать ресурсы приложения. Для нас это не имеет особого значения, поскольку окно-клиент не использует ресурсы.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий