Предыдущая Следующая
ФуНКЦия-ЧЛен handlejnessage класса tmdijnaanager обрабатывает сообщения wm_create и wm_destroy сама, так что она может постоянно обновлять свой список активных окон. Сообщения, которые относятся к дочерним окнам, такие как сообщения о прорисовке окна или о перемещениях мыши, пересылаются в активное дочернее окно. Все остальные сообщения обрабатываются по умолчанию стандартным образом.
ФуНКЦИИ-ЧЛеНЫ init_menu И set_frame_menu устанавливают
меню и подменю в дочерних окнах и их взаимосвязи с меню окна фрейма. Эти функции вызываются один раз из функции winMain, сразу после регистрации окна. Идентификатор
menu_rc_name - ЭТО ИМЯ СТроКИ ДЛЯ МеНЮ ОКНа, Как ОНО ВЫГЛЯДИТ в файле ресурсов. Параметр window_submenu_j?os сообщает Windows, где разместить список открытых дочерних окон MDI. Вид этого списка в меню - преимущество, которое вы получаете бесплатно от системы управления MDI Windows.
Класс tmdi_chiid_window является базовым классом ДЛЯ конкретных типов дочерних окон. Он инкапсулирует поведение, общее для всех дочерних окон MDI. Наиболее интересное поведение заключается в том, что меню окна фрейма меняется при активизации нового дочернего окна. Это выполняет функЦИЯ-ЧЛен respond_wm_mdiactivate В ОТВеТ На со-общение wm_md I act i vate. Эта функция использует два макроса: activate_mdi_child_window И mdi_setmenu_msgparams.
Имеется две версии этих макросов, одна для 16-разрядных Windows (такой как Windows 3.1) и одна для 32-разрядных Windows (таких как Windows 95/98/nt). Эти макросы позволяют использовать один и тот же набор исходных кодов, который может компилироваться как в 16-разрядном, так и в 32-разрядном окружении.
274 __Фракталы и вейвлеты для сжатия изображений в Дейстьц
Листинг В.2.3. Опрелеление класса лля окон АЮ1
class tmdi_window: public twindow { public:
// Base class for tmdi_manager and tmdi_child_window tmdi_window (HINSTANCE hlnstance,LRESULT CALLBACK
window_proc, int window_extra, LPCSTR menu^name,
LPCSTR title_name,
LPCSTR class_name,LPCSTR icon^name): twindow (hlnstance, window_jproc, window_extra, menu^name, title_name, class^name, icon__name)
{);
virtual LRESULT CALLBACK default_window_proc (HWND hwnd, UINT message,WPARAM wParam,LPARAM lParam); Предыдущая Следующая
|