CMDIChildWnd::Create
呼叫此成員函式建立視窗 MDI 子視窗並附加至 CMDIChildWnd 物件。
virtual BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW,
const RECT& rect = rectDefault,
CMDIFrameWnd* pParentWnd = NULL,
CCreateContext* pContext = NULL
);
參數
lpszClassName
對命名視窗類別的 null 結尾字元字串的點 ( WNDCLASS 結構)。 類別名稱可以是任何名稱。 AfxRegisterWndClass 全域函式註冊。 應該是標準的 CMDIChildWndNULL 。lpszWindowName
out 表示視窗名稱中的 null 結尾字元字串的點。 使用做為文字標題列。dwStyle
指定視窗 樣式 屬性。 需要 WS_CHILD 樣式。rect
包含視窗的大小和位置。 rectDefault 值允許 Windows 指定新的 CMDIChildWnd的大小和位置。pParentWnd
指定視窗的父代。 如果為,則主應用程式視窗使用 NULL。pContext
指定 CCreateContext 結構。 這個參數可以是 NULL。
傳回值
如果不是零,則成功,則為 0。
備註
目前作用中的 MDI 子框架視窗可以判斷父框架視窗的標題。 這個功能將關閉子框架視窗的 FWS_ADDTOTITLE 樣式位元停用。
架構會呼叫此成員函式以回應使用者命令建立子視窗和架構使用 pContext 參數適當地連接子視窗至應用程式。 當您呼叫時, 建立pContext 可以是 NULL。
範例
範例 1:
// CMainFrame::OnFileNewCMdiChildWnd() is a menu command handler for the
// CMainFrame class, which in turn is a CMDIFrameWnd-derived class.
// It shows the creation of a standard Windows MDI child window using
// the registered CMDIChildWnd class.
void CMainFrame::OnFileNewMdiChildWnd()
{
CMDIChildWnd* pMDIChildWnd = new CMDIChildWnd;
VERIFY(pMDIChildWnd->Create(
NULL, // standard CMDIChildWnd class
_T("My MDIChildWnd"), // caption of MDI child window
WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW, // window styles
rectDefault, // default rectangle size
this)); // parent window; can be NULL
// the default PostNcDestroy handler will delete this object when destroyed
}
範例 2:
// CMainFrame::OnHello() is a menu command handler for the CMainFrame
// class, which in turn is a CMDIFrameWnd-derived class.
// It shows the creation of a Windows MDI child window using a custom
// window class. The custom window class is registered in
// CHelloWnd::Create(). CHelloWnd is a CMDIChildWnd-derived class.
void CMainFrame::OnHello()
{
CHelloWnd *pHelloWnd = new CHelloWnd;
if (!pHelloWnd->Create(_T("Hello"),
WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW,
rectDefault, this))
return;
// the default PostNcDestroy handler will delete this object when destroyed
}
BOOL CHelloWnd::Create(
LPCTSTR szTitle,
LONG style /* = 0 */,
const RECT& rect /* = rectDefault */,
CMDIFrameWnd* parent /* = NULL */)
{
// Setup the shared menu
SetHandles(::LoadMenu(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_HELLO)),
NULL);
// Register a custom WndClass and create a window.
// This must be done because CHelloWnd has a custom icon.
LPCTSTR lpszHelloClass =
AfxRegisterWndClass(CS_HREDRAW | CS_VREDRAW,
LoadCursor(NULL, IDC_ARROW),
(HBRUSH) (COLOR_WINDOW+1),
LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_HELLO)));
return CMDIChildWnd::Create(lpszHelloClass, szTitle, style, rect, parent);
}
需求
Header: afxwin.h