以下是 CMDIChildWnd 类中 Create 方法的基本语法:
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:指定 MDI 子窗口类名。在大多数情况下,可以将其设置为 NULL,以使用默认的 MDI 子窗口类。
- lpszWindowName:指定 MDI 子窗口的窗口名称。
- dwStyle:指定 MDI 子窗口的窗口样式,默认为 WS_CHILD | WS_VISIBLE | WS_OVERLAPPEDWINDOW。
- rect:指定 MDI 子窗口的初始位置和大小,默认为 rectDefault。
- pParentWnd:指定 MDI 子窗口的父窗口,通常是 MDI 主框架窗口。
- pContext:指定用于创建 MDI 子窗口的上下文信息。
以下是一个简单的示例代码,演示如何使用 Create 方法创建 MDI 子窗口:
#include <afxwin.h>
class CMyMDIChild : public CMDIChildWnd
{
public:
CMyMDIChild() {}
};
class CMyMDIFrame : public CMDIFrameWnd
{
public:
CMyMDIFrame()
{
Create(NULL, L"My MDI Frame", WS_OVERLAPPEDWINDOW, rectDefault, NULL, L"MenuID");
// 创建 MDI 子窗口
CMyMDIChild* pChildWnd = new CMyMDIChild;
pChildWnd->Create(NULL, L"My MDI Child", WS_OVERLAPPEDWINDOW, rectDefault, this);
}
};
class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance()
{
// 初始化 MFC 应用程序
CMyMDIFrame* pFrame = new CMyMDIFrame;
m_pMainWnd = pFrame;
pFrame->LoadFrame(IDR_MAINFRAME);
pFrame->ShowWindow(SW_SHOW);
pFrame->UpdateWindow();
return TRUE;
}
};
CMyApp theApp;
在这个示例中,我们创建了一个自定义的 CMyMDIChild 类,继承自 CMDIChildWnd。在 CMyMDIFrame 构造函数中,我们使用 Create 方法创建了一个 MDI 子窗口,并设置了一些基本的属性。这个示例主要用于说明在 MDI 应用程序中使用 Create 方法创建 MDI 子窗口的一般过程。
转载请注明出处:http://www.zyzy.cn/article/detail/18836/MFC/CMDIChildWnd