MFC新的Tabbed MDI框架下遍历子框架窗口CChildFrame

在新版VC的MFC里引入了新的MDI框架,直接支持Tabbed MDI窗口,以VC 2012为例,效果如下图:
 
 
 
其遍历所有子框架窗口(CChildFrame)的方式也不一样了,原来的使用CMDIFrameWnd::m_hWndMDIClient来遍历子框架窗口的方法不再适用,当然,MDINext()这种方式不在讨论之列,新的方式更加简单。
 
 
void CMainFrame::AllChildFrames(void)
{
    const CObList &TabGroups = GetMDITabGroups();
 
    if( TabGroups.GetCount() == 0 )
    {
        return;
    }
 
    CMFCTabCtrl *pTabCtrl = ( CMFCTabCtrl *)TabGroups.GetHead();
 
    for(int i=0; i<pTabCtrl->GetTabsNum(); i++)
    {
        CMDIChildWnd * pChildWnd = dynamic_cast <CMDIChildWnd *>(pTabCtrl->GetTabWnd(i));
        // pChildWnd 可以继续向下转型成当前使用的 CChildFrame,然后进行相应操作
    }
}
 
原文地址:https://www.cnblogs.com/SDDK/p/3444735.html