FRACTALS

ѕ даРЪвРЫРе
іРЫХаХп ШЧЮСаРЦХЭШЩ даРЪвРЫЮТ
їаЮУаРЬЬл ФЫп ЯЮбваЮХЭШп даРЪвРЫЮТ
БблЫЪШ ЭР ФагУШХ бРЩвл Ю даРЪвРЫРе
ЅРЯШиШ бТЮШ ТЯХзРвЫХЭШп



 
 

LOGO
Предыдущая Следующая

Окно фрейма отвечает на сообщение Windows wm_create с помощью функции respond_wm_create, которая создает клиентское окно MDI. Затем окно фрейма может отобразить диалог About (Сведения). Каждое из приложений, включенных сюда, использует диалог About (Сведения).

1Ложение В. Библиотека утилит Windows

271

Выбранная пользователем команда меню пересылается

функЦИИ-ЧЛену respond_wm_command. Там ТИП дочернего ОКНа Проверяется ПО СВЯЗаННОМу СПИСКу tmdi_type_list_struct.

Совпадение инициирует создание дочернего окна MDI соответствующего класса. Если совпадения нет, то фрейм продолжает проверять другие обычные команды, включая предопределенные команды, определяющие поведение окон MDI, такие как расположение дочерних окон мозаикой или каскадом. Заметим, что это базовое поведение MDI реализуется простой посылкой нужного сообщения клиентскому окну. Определенная здесь структура команд достаточно общая для большинства приложений MDI. Специфические потребности, такие как взаимодействие с пользователем через диалоги, могут быть реализованы с помощью производных классов фреймов.

1СТИНГ В.2.2. Определение класса для tmdi_f rame_window

typedef struct tmdi_type_list_tag { UINT type_id; LPCSTR the_class; LPCSTR the_title; tmdi_type_list_tag *next; } tmdi_type_list_struet;

void free_mdi_type_list_struet (tmdi_type_list_struet *type_list) ;

LRESULT CALLBACK ^export FrameWndProc (HWND hwnd, UINT message/ WPARAM wParam,LPARAM iParam) ;

#define NO_ABOUT 0 #define SHOW_ABOUT 1

class tmdi_frame^window: public twindow { public:

tmdi_frame_window (HINSTANCE hlnstance,

LRESULT CALLBACK window_proc,int window_extra, LPCSTR menu^name, LPCSTR title_name,

LPCSTR class_name,LPCSTR icon__name, tmdi_type_list_struet *child_types, int init_show_about); HWND hwndClient;

CLIENTCREATESTRUCT clientcreate /

LRESULT CALLBACK lpfnEnum ;

HWND hwndChild ;

MDICREATESTRUCT mdicreate ;

tmdi_type_list_struet *mdi_children_types;

272

Фракталы и вейвлеты для сжатия изображений в действии

Листинг В.2.2. Опрелеление класса лля tmdi_f rame_window

Продолжение

UINT latest_command;

HMENU f rame_menu, f rame__submenu;


Предыдущая Следующая


Галерея фракталов

 

Hosted by uCoz