Предыдущая Следующая
int show_about;
virtual void set_mdicreate (LPCSTR the^class,LPCSTR
the_title)/ virtual void set_global__ptr (void); virtual int respond^wm_create (HWND hwnd); virtual int respond_wm_command (WPARAM wParam, LP ARAM
lParam)/
virtual int respond_wm_queryendsession (void); virtual int respond_wm_close (void); virtual int respond_wm_destroy (HWND hwnd); virtual int respond_wm_about (void); virtual LRESULT CALLBACK default_windowjproc (HWND hwnd,
UINT message,WPARAM wParam, LPARAM lParam) ; void initjnenu (HINSTANCE hinst,LPCSTR iaenu_rc__name, WPARAM window_submenu_pos);
};
B.2.3. Окна MDI
На Листинге B.2.3 представлен класс, который определяет
ОСНОВНОе Поведение ОКОН MDI. БаЗОВЫЙ КЛаСС tmdi_window Переопределяет фунКЦИЮ-ЧЛеН default_window_j>roc, Чтобы
вызывать функцию Windows DefMDichiidProc, которая определяет поведение MDI по умолчанию.
Windows отслеживает активные дочерние окна MDI через список идентификаторов hwnd. Когда дочерние окна создаются или удаляются, Windows добавляет или удаляет идентификаторы hwnd, чтобы этот список правильно отображал текущие окна, открытые в окне фрейма. UWL представляет каждое дочернее окно MDI посредством потомка класса
tmdi_child_window, ПОЭТОМУ ему нуЖНО ПОДДерЖИВаТЬ ОТ-
дельный список указателей для доступа к активным объектам С++ класса дочерних окон MDI. Назначение класса
tmdi_manager - ПОДДерЖИВаТЬ ЭТОТ СПИСОК И ПереСЫЛаТЬ СО-
общения Windows в активное дочернее окно.
Структура chiid_window_struct связывает идентификатор Windows hwnd с указателем на объект класса tmdi_chiid_window. Это указатель на класс object_üst, который является классом для управления массивом указателей
жжение В. Библиотека утилит Windows
273
На объекты. Класс tmdi_manager имеет Виртуальную
функцию new_chiid_window, которая создает новое дочернее окно. Для того чтобы создать дочерние окна конкретного вида, вам необходимо создать потомок класса управления MDI, который переопределит эту виртуальную функцию посредством версии, создающей нужный тип дочернего окна. Обычно
ФУНКЦИИ new__child_window И set_globalj?tr — ЭТО единственные функции-члены, которые вам необходимо переопределить в производных классах управления. Предыдущая Следующая
|