CMDIFrameWnd

CMDIFrameWn CMDIFrameWn CMDIFrameWn

CMDIFrameWnd類提供了Windows多文檔界面(MDI)子視窗的功能和管理視窗的功能。
為了為套用創建有用的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 返回視窗的彈出選單

相關詞條

相關搜尋

熱門詞條

聯絡我們