BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { BOOL tHandled; CWnd* pView; // First, try the default routing scheme. tHandled = CFrameWnd::OnCmdMsg( nID, nCode, pExtra, pHandlerInfo ); if( tHandled ) { return( TRUE ); } // If nobody handled it, and the main view isn't active, try the main view. pView = m_wndSplitter.GetPane( 0, 1 ); if( pView != GetActiveView() ) { tHandled = pView->OnCmdMsg( nID, nCode, pExtra, pHandlerInfo ); if( tHandled ) { return( TRUE ); } } return( FALSE ); }
void CXTPControlScrollBar::DoScroll(int cmd, int pos) { m_bInScroll = TRUE; CWnd* pParent = GetParent()->GetOwnerSite(); NMXTPSCROLL nmScroll; nmScroll.hdr.code = XTP_SBN_SCROLL; nmScroll.hdr.idFrom = GetID(); nmScroll.hdr.hwndFrom = GetParent()->GetSafeHwnd(); nmScroll.pSender = this; nmScroll.nPos = pos; nmScroll.nSBCode = cmd; LRESULT lResult = 0; AFX_NOTIFY notify; notify.pResult = &lResult; notify.pNMHDR = (NMHDR*)&nmScroll.hdr; pParent->OnCmdMsg(GetID(), MAKELONG(XTP_SBN_SCROLL, WM_NOTIFY), ¬ify, NULL); m_bInScroll = FALSE; if (*notify.pResult) return; OnScroll(cmd, pos); }
BOOL CMainFrame::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { CWnd* wnd = CWnd::FromHandle(GetChildWnd()); if (wnd && wnd->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; return CFrameWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); }
BOOL PSOrdersTab::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { // This is necessary for routing the menu commands to the MainFrame; CWnd* pWnd = AfxGetMainWnd(); ASSERT(pWnd); if (pWnd->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; return CListBox::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo); }
BOOL AFXAPI _AfxOlePropertiesEnabled() { // edit properties is enabled if there is a handler // for ID_OLE_EDIT_PROPERTIES AFX_CMDHANDLERINFO info; // check main window first CWnd* pWnd = AfxGetMainWnd(); if (pWnd != NULL && pWnd->OnCmdMsg(ID_OLE_EDIT_PROPERTIES, CN_COMMAND, NULL, &info)) return TRUE; // check app last return AfxGetApp()->OnCmdMsg(ID_OLE_EDIT_PROPERTIES, CN_COMMAND, NULL, &info); }
BOOL AFXAPI AfxHelpEnabled() { if (AfxGetApp() == NULL) return FALSE; // help is enabled if the app has a handler for ID_HELP AFX_CMDHANDLERINFO info; // check main window first CWnd* pWnd = AfxGetMainWnd(); if (pWnd != NULL && pWnd->OnCmdMsg(ID_HELP, CN_COMMAND, NULL, &info)) return TRUE; // check app last return AfxGetApp()->OnCmdMsg(ID_HELP, CN_COMMAND, NULL, &info); }
BOOL CDialog::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) { if (CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; if ((nCode != CN_COMMAND && nCode != CN_UPDATE_COMMAND_UI) || !IS_COMMAND_ID(nID) || nID >= 0xf000) { // control notification or non-command button or system command return FALSE; // not routed any further } // if we have an owner window, give it second crack CWnd* pOwner = GetParent(); if (pOwner != NULL) { #ifdef _DEBUG if (afxTraceFlags & traceCmdRouting) TRACE1("Routing command id 0x%04X to owner window.\n", nID); #endif ASSERT(pOwner != this); if (pOwner->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; } // last crack goes to the current CWinThread object CWinThread* pThread = AfxGetThread(); if (pThread != NULL) { #ifdef _DEBUG if (afxTraceFlags & traceCmdRouting) TRACE1("Routing command id 0x%04X to app.\n", nID); #endif if (pThread->OnCmdMsg(nID, nCode, pExtra, pHandlerInfo)) return TRUE; } #ifdef _DEBUG if (afxTraceFlags & traceCmdRouting) { TRACE2("IGNORING command id 0x%04X sent to %hs dialog.\n", nID, GetRuntimeClass()->m_lpszClassName); } #endif return FALSE; }
BOOL CToolbarHelper::IsCmdEnabled(UINT nCmdID) const { CWnd* pParent = CWnd::FromHandle(GetHwnd()); if (pParent) { CCmdUITH state; state.m_nIndexMax = 1; state.m_nIndex = 0; state.m_nID = nCmdID; pParent->OnCmdMsg(nCmdID, CN_UPDATE_COMMAND_UI, &state, NULL); return state.m_bEnabled; } return TRUE; }