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

CMDIFrameWnd

鎖定
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返回窗口的彈出菜單