以下是 CMDIChildWnd 类中 GetMDIFrame 方法的基本语法:
CMDIFrameWnd* GetMDIFrame() const;
这个方法返回一个指向与当前 MDI 子窗口关联的 MDI 主框架窗口的指针。如果当前窗口不是 MDI 子窗口,则返回 NULL。
以下是一个简单的示例代码,演示如何使用 GetMDIFrame 方法:
#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);
// 获取与子窗口关联的 MDI 主框架窗口
CMDIFrameWnd* pMDIFrame = pChildWnd->GetMDIFrame();
if (pMDIFrame != nullptr) {
wprintf(L"子窗口关联的 MDI 主框架窗口名称:%s\n", pMDIFrame->GetWindowText());
} else {
wprintf(L"子窗口未关联到 MDI 主框架窗口。\n");
}
}
};
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 构造函数中,我们创建了一个 MDI 子窗口,并使用 GetMDIFrame 方法获取与子窗口关联的 MDI 主框架窗口的指针,然后输出主框架窗口的窗口文本。请注意,要确保在调用 GetMDIFrame 方法之前 MDI 子窗口已经成功创建。
转载请注明出处:http://www.zyzy.cn/article/detail/18837/MFC/CMDIChildWnd