當前位置:編程學習大全網 - 編程軟體 - vc 單文檔多視圖問題

vc 單文檔多視圖問題

在VC6.0中這就需要使用到CSplitterWnd類。CSplitterWnd看上去像是壹種特殊的框架窗口,每個窗口都被相同的或者不同的視圖所填充。當窗口被切分後用戶可以使用鼠標移動切分條來調整窗口的相對尺寸。 CSplitterWnd的構造函數主要包括下面三個。

BOOL Create(CWnd* pParentWnd,int nMaxRows,int nMaxCols,SIZE sizeMin,CCreateContext* pContext,DWORD dwStyle,UINT nID);功能描述:該函數用來創建動態切分窗口。 參數含義:pParentWnd 切分窗口的父框架窗口。 nMaxRows,nMaxCols是創建的最大的列數和行數。 sizeMin是窗格的現實大小。 pContext 大多數情況下傳給父窗口。 nID是字窗口的ID號. BOOL CreateStatic(CWnd* pParentWnd,int nRows,int nCols,DWORD dwStyle,UINT nID) 功能描述:用來創建切分窗口。 參數含義同上。 BOOL CreateView (int row,int col,CruntimeClass* pViewClass,SIZE sizeinit,CcreateContext* pContext);功能描述:為靜態切分的窗口的網格填充視圖。在將視圖於切分窗口聯系在壹起的時候必 須先將切分窗口創建好。

參數含義:同上。

從CSplitterWnd源程序可以看出不管是使用動態創建Create還是使用靜態創建CreateStatic,在函數中都調用了壹個保護函數CreateCommon,從下面的CreateCommon函數中的關鍵代碼可以看出創建CSplitterWnd的實質是創建了壹系列的MDI子窗口。

DWORD dwCreateStyle = dwStyle & ~(WS_HSCROLL|WS_VSCROLL);if (afxData.bWin4) dwCreateStyle &= ~WS_BORDER; //create with the same wnd-class as MDI-Frame (no erase bkgnd) if (!CreateEx(0, _afxWndMDIFrame, NULL, dwCreateStyle, 0, 0, 0, 0,pParentWnd->m_hWnd, (HMENU)nID, NULL)) return FALSE; // create invisible

  • 上一篇:三星電視ua55f7500在更新固件後已自動重啟。
  • 下一篇:斯坦福大學“如何創業”公開課小結:第19課
  • copyright 2024編程學習大全網