CMDIChildWnd類提供了Windows多文檔界面(MDI)子視窗及用於管理視窗的成員。
基本介紹
- 外文名:CMDIChildWnd
- MDIDestroy:刪除MDI子視窗
- MDIActivate:激活MDI子視窗
- MDIMaximize:使MDI子視窗最大化
產品簡介,功能簡述,
產品簡介
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對象。
派生於CMDIChildWnd的框架視窗必須由DECLARE_DYNCREATE來聲明,以便於RUNTIME_CLASS機制正常工作。
功能簡述
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框架 |