複製鏈接
請複製以下鏈接發送給好友

CMDIChildWnd

鎖定
CMDIChildWnd類提供了Windows多文檔界面(MDI)子窗口及用於管理窗口的成員。
外文名
CMDIChildWnd
MDIDestroy
刪除MDI子窗口
MDIActivate
激活MDI子窗口
MDIMaximize
使MDI子窗口最大化

CMDIChildWnd產品簡介

MDI子窗口與典型的框架窗口非常相似,唯一的區別在於MDI子窗口是出現在MDI框架窗口中,而不是在桌面上。MDI子窗口沒有自己的菜單條,不過它可以共享MDI框架窗口。框架自動更改MDI框架的菜單,用於代表當前活動的MDI子窗口。
為了為應用創建有用的MDI子窗口,需要從CMDIChildWnd派生類。
派生類增添成員變量,從而為應用存儲指定的數據。實現消息處理的成員函數,並在派生類中實現消息映射,以便於指出當消息傳遞給窗口後,將發生什麼事情。
構造MDI子窗口有三種途徑:
(1)使用Create函數直接構造。
(2)使用LoadFrame函數直接構造。
(3)通過文檔模板直接構造。
在調用Create 或 LoadFrame之前,必須使用C++new操作符在堆中構造框架窗口對象。在調用Create函數之前,必須使用AfxRegisterWndClass全局函數來登記窗口類,從而為框架設置圖標或類的風格。
使用Create成員函數,用於傳遞作為即時參數的框架創建參數。
LoadFrame需要的參數比Create少,不過,它需要資源更多的缺省值,包括框架的標題、圖標、加速表和菜單。為了LoadFrame函數的使用,所有的資源必須有相同的資源ID號(例如, IDR_MAINFRAME)。
當CMDIChildWnd對象包含視圖或文檔時,它們都是被框架直接創建的,而不是被編程者創建的。CDocTemplate 對象含有框架的創建,視圖的創建以及視圖與適當文檔的聯繫。CDocTemplate結構的參數指定了涉及到的三個類(文檔,框架,視圖)的CRuntimeClass對象。
CRuntimeClass對象被框架所使用,用於用户指定後動態地創建新框架(例如使用File New命令或MDI窗口New命令)。
派生於CMDIChildWnd的框架窗口必須由DECLARE_DYNCREATE來聲明,以便於RUNTIME_CLASS機制正常工作。

CMDIChildWnd功能簡述

CMDIChildWnd類從CFrameWnd類中繼承了大部分缺省用法。如果需要了解這些功能的詳細情況,請參考CFrameWnd類的描述。
CMDIChildWnd擁有下列額外的功能:
(1)與CMultiDocTemplate類相關聯,來自於同一文檔模板的多個CMDIChildWnd 對象共享同一個菜單,並存儲Windows的系統資源。
(2)當前活動的MDI子窗口菜單完全替換了MDI框架窗口的菜單。如果要了解與MDI框架窗口有關的MDI子窗口函數的更多例子,請參閲CMDIFrameWnd類的説明。
最好不要使用C++刪除操作來刪除框架窗口,而應使用CWnd::DestroyWindow函數。當用户關閉框架窗口時,缺省的OnClose操作將調用DestroyWindow函數。
#include <afxwin.h>
CMDIChildWnd類的成員
構造一個CMDIChildWnd對象
初始化
創建與CMDIChildWnd對象相關聯的Windows MDI子窗口
操作
MDIRestore
將MDI子窗口從最大化狀態或最小化狀態恢復為原始尺寸
GetMDIFrame
返回父親MDI客户窗口的MDI框架