CMDIFrameWnd類提供了Windows多文檔界面(MDI)子視窗的功能和管理視窗的功能。
基本介紹
- 中文名:CMDIFrameWnd
- 調用:Create或LoadFrame
- 實現:訊息處理的成員函式
- 派生類:CMDIFrameWnd
為了為套用創建有用的MDI子視窗,需要從CMDIFrameWnd派生類。
可以通過MDI調用Create函式或CMDIFrameWnd的LoadFrame函式來構造MDI子視窗。
在調用Create或LoadFrame之前,必須使用C++的new操作符在堆中構造框架視窗對象。在調用Create函式之前,必須使用AfxRegisterWndClass全局函式來登記視窗類,從而為框架設定圖示或類的風格。
使用Create成員函式,用於傳遞作為即時參數的框架創建參數。
LoadFrame需要的參數比Create少,不過,它需要資源更多的預設值,包括框架的標題、圖示、加速表和選單。為了LoadFrame函式的使用,所有的資源必須有相同的資源ID 號(例如, IDR_MAINFRAME)。
儘管MDIFrameWnd由CFrameWnd類派生,但由CMDIFrameWnd派生的框架視窗不必由DECLARE_DYNCREATE來聲明。
CMDIFrameWnd類從CFrameWnd類中繼承了大部分預設用法。如果需要這些功能的詳細情況,請參考CFrameWnd類的描述。CMDIFrameWnd擁有下列額外的功能:
·MDI框架視窗用於管理MDICLIENT視窗,並在其與控制項欄的結合中復位。MDI客戶視窗是MDI子框架視窗的直親。WS_HSCROLL與WS_VSCROLL視窗風格指定了CMDIFrameWnd將套用於MDI客戶視窗,而不是主框架視窗,這樣用戶就可以滾動MDI 客戶區(例如,Windows的程式管理器)。·當沒有活動的MDI子視窗時,MDI框架視窗擁有作為選單條使用的預設選單。當有活動的MDI子視窗時,MDI框架視窗的選單條由MDI子視窗的選單所替換。·如果有MDI子視窗,那么MDI框架視窗則操作當前的MDI子視窗。例如,命令訊息將於MDI框架視窗之前傳送到MDI子視窗。·MDI框架視窗擁有下列標準Windows選單命令的預設句柄: ·ID_WINDOWS_TILE_VERT ·ID_WINDOWS_TILE_HORZ ·ID_WINDOWS_CASCADE ·ID_WINDOWS_ARRANGE·MDI框架視窗也有ID_WINDOWS_NEW功能,以用於在當前文檔中創建新的框架或視圖。套用可以覆蓋這些預設的命令操作,以用於定製 MDI視窗操作。 |
最好不要使用C++ delete操作符來刪除框架視窗,相反,請使用CWnd::DestroyWindow函式。當銷毀視窗時,PostNcDestroy的CFrameWnd命令將刪除C++對象。當用戶關閉框架視窗時,預設的OnClose操作將調用DestroyWindow函式。
#include <afxwin.h>
請參閱:CWnd, CMDIChildWnd
CMDIFrameWnd類的成員
CMDIFrameWnd構造一個CMDIFrameWnd |
操作
MDIActivate激活一個不同的MDI子視窗MDIGetActive獲取當前活動的MDI子視窗,並得到指示它是否最大化的標誌MDIIconArrange重排所有最小化文檔子視窗MDIMaximize最大化一個MDI子視窗MDINext激活緊跟在當前活動子視窗之後的子視窗,並把當前活動子視窗放到所有子視窗的最後MDIRestore將一個MDI子視窗從最大化或最小化狀態恢復回來MDISetMenu重置一個MDI框架視窗的選單,Window彈出選單,或兩者都重置MDITile將所有的子視窗以平鋪方式排列MDICascade將所有的子視窗以級聯方式排列 |
可覆蓋的函式
CreateClient為CMDIFrameWnd類創建Windows MDICLIENT視窗。通過CWnd類的OnCreate成員函式來調用GetWindowMenuPopup返回視窗的彈出選單 |