CMDIChildWnd

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對象。
CRuntimeClass對象被框架所使用,用於用戶指定後動態地創建新框架(例如使用File New命令或MDI視窗New命令)。
派生於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框架

相關詞條

熱門詞條

聯絡我們