CREATESTRUCT結構
CREATESTRUCT結構具有如下形式:
typedef struct
tagCREATESTRUCT
{
LPVOID lpCreateParams;
HANDLE hInstance;
HMENU hMenu;
HWND hwndParent;
int cy;
int cx;
int y;
int x;
LONG style;
LPCSTR lpszName;
LPCSTR lpszClass;
DWORD dwExStyle;
}
CREATESTRUCT;
CREATESTRUCT結構定義了傳遞給應用程序的窗口過程的初始化參數。
成員:
CCreateContext
CCreateContext沒有基類。
在主程序創建框架窗口、以及文檔相關的視圖時,會使用CCreateContext結構。
建立窗口時,此結構中的值用於連接構成文檔的組件和文檔數據的視圖。僅當覆蓋了創建過程時才需要使用CCreateContext。
CCreateContext結構包含了指向文檔、框架窗口和文檔模板的指針,包括了一個CRuntimeClass指針,CRuntimeClass標志了待創建的視圖的類型。運行時類信息和當前文檔指針用於動態地創建視圖。下表列出了CCreateContext的每個成員的用法:
當在文檔模板上創建一個文檔及其相關的組件時,它檢查存儲在CCreateContext結構中的信息的有效性。例如,不能在一個不存在的文檔上建立視圖。
注意:
CCreateContext結構中的所有指針都是可選的,在不需要或者未知時可設為NULL。
一般說來,如果使用了框架的缺省設置,就可以忽略CCreateContext結構。如果想進行一些高級的修改,MFC類庫源代碼或例子程序(如VIEWEX)可以提供參考。如果記不清參數的使用,框架中提供的斷言將有助於發現參數使用的錯誤。
CreateView
virtual BOOL CreateView( int row, int col, CRuntimeClass* pViewClass, SIZE sizeInit, CCreateContext* pContext ); ● row:窗格的行標,從0開始 ● col:窗格的列標,從0開始 ● pViewClass:視圖的執行期類CRuntimeClass指針,可以用宏RUNTIME_CLASS獲得 ● sizeInit:一個SIZE(或者CSize)類型的數據,指定窗格的初始尺寸 ● pContext:一般是由父窗口傳遞過來,包含窗口的創建信息 返回值:如果創建成功,返回非零值(TRUE),否則返回0(FALSE)。 SetColumnInfo void SetColumnInfo( int col, int cxIdeal, int cxMin ); ● col:切分窗口的列標識 ● cxIdeal:指定分隔器窗口列的以像素表示的理想寬度。 ● cxMin:指定分隔器窗口列以像素表示的最小寬度。 CWnd::MoveWindow