BOOL CMDIFrameWnd::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { CMDIChildWnd* pActiveChild = MDIGetActive(); // pump through active child FIRST if (pActiveChild != NULL) { CPushRoutingFrame push(this); if (pActiveChild->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; } // then pump through normal frame return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); }
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { STDDLLLIST::iterator DLLit; // IDLL *di; CMDIChildWnd* pActiveChild = MDIGetActive(); // pump through active child FIRST if (pActiveChild != NULL) { CPushRoutingFrame push(this); if (pActiveChild->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; } CMDMESSAGE cmdMsg; cmdMsg.m_nID = nID; cmdMsg.m_nCode = nCode; cmdMsg.m_pExtra = pExtra; cmdMsg.m_pHandlerInfo = pHandlerInfo; cmdMsg.retVal = false; // try pumping through DLLS static DWORD msgHash_WindowsCmdMsg = CHashString(_T("WindowsCmdMsg")).GetUniqueID(); theApp.GetToolBox()->SendMessage(msgHash_WindowsCmdMsg, sizeof(CMDMESSAGE), &cmdMsg); if (cmdMsg.retVal) return TRUE; // now try the resource manager if (m_ResourceBar.OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; // then pump through normal frame return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); }