Пример #1
0
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);
}
Пример #2
0
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);
}