CWnd::OnMDIActivate 是 MFC(Microsoft Foundation Classes)库中 CWnd 类的一个受保护方法,用于处理 MDI(Multiple Document Interface)子窗口的激活事件。MDI 是一种窗口界面风格,允许在一个父窗口内同时容纳多个子窗口(文档视图)。

以下是一个简单的示例:
// MyMDIChildWnd.h

class MyMDIChildWnd : public CMDIChildWnd
{
   // 声明消息映射
   afx_msg void OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd);
   DECLARE_MESSAGE_MAP()
};

// MyMDIChildWnd.cpp

BEGIN_MESSAGE_MAP(MyMDIChildWnd, CMDIChildWnd)
   ON_WM_MDIACTIVATE()
END_MESSAGE_MAP()

// 实现消息处理函数
void MyMDIChildWnd::OnMDIActivate(BOOL bActivate, CWnd* pActivateWnd, CWnd* pDeactivateWnd)
{
   // 在这里处理 MDI 子窗口激活事件
   // 可以添加你的自定义代码
   CMDIChildWnd::OnMDIActivate(bActivate, pActivateWnd, pDeactivateWnd);
}

在这个示例中,MyMDIChildWnd 类继承自 CMDIChildWnd,并声明了 OnMDIActivate 方法。在消息映射中,使用 ON_WM_MDIACTIVATE 宏将消息映射到相应的处理函数。

当 MDI 子窗口激活或失去激活时,OnMDIActivate 方法会被调用,你可以在这里添加自己的处理逻辑。调用 CMDIChildWnd::OnMDIActivate 以确保默认的处理也能继续进行。


转载请注明出处:http://www.pingtaimeng.com/article/detail/23630/MFC/CWnd