CMDIChildWnd 类提供了 MDIActivate 方法,用于激活或切换 MDI(多文档界面)子窗口的可视状态。调用该方法可以将子窗口激活为活动窗口,并将其显示在最前面。

以下是 CMDIChildWnd 类中 MDIActivate 方法的基本语法:
void MDIActivate();
void MDIActivate(CWnd* pWndActivate, CWnd* pWndDeactivate);

  •  第一种形式的 MDIActivate 方法不带参数,用于将当前的 CMDIChildWnd 对象激活为 MDI 子窗口的活动窗口。

  •  第二种形式的 MDIActivate 方法带有两个参数,分别是要激活的窗口(pWndActivate)和要停用的窗口(pWndDeactivate)。


以下是一个简单的示例代码,演示如何使用 MDIActivate 方法:
#include <afxwin.h>

class CMyMDIChild : public CMDIChildWnd
{
public:
    CMyMDIChild() {}

    // 自定义激活方法
    void MyActivate()
    {
        MDIActivate();
    }
};

class CMyMDIFrame : public CMDIFrameWnd
{
public:
    CMyMDIFrame()
    {
        Create(NULL, L"My MDI Frame", WS_OVERLAPPEDWINDOW, rectDefault, NULL, L"MenuID");

        // 创建两个 MDI 子窗口
        CMyMDIChild* pChildWnd1 = new CMyMDIChild;
        pChildWnd1->Create(NULL, L"My MDI Child 1", WS_OVERLAPPEDWINDOW, rectDefault, this);

        CMyMDIChild* pChildWnd2 = new CMyMDIChild;
        pChildWnd2->Create(NULL, L"My MDI Child 2", WS_OVERLAPPEDWINDOW, rectDefault, this);

        // 使用 MDIActivate 方法激活第一个子窗口
        pChildWnd1->MyActivate();
    }
};

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;

在这个示例中,我们创建了两个 MDI 子窗口,并使用 MDIActivate 方法激活了第一个子窗口。你可以通过调用 MDIActivate 方法来切换 MDI 子窗口的激活状态。


转载请注明出处:http://www.zyzy.cn/article/detail/18838/MFC/CMDIChildWnd