void CModelessMain::OnMenuSelect(UINT nItemID, UINT nFlags, HMENU /*hSysMenu*/) { // set the tracking state if (nFlags == 0xFFFF) { // cancel menu operation (go back to idle now) m_nIDTracking = AFX_IDS_IDLEMESSAGE; OnSetMessageString(m_nIDTracking); // set string now ASSERT(m_nIDTracking == m_nIDLastMessage); } else if (nItemID == 0 || nFlags & (MF_SEPARATOR|MF_POPUP|MF_MENUBREAK|MF_MENUBARBREAK)) { // nothing should be displayed m_nIDTracking = 0; } else if (nItemID >= 0xF000 && nItemID < 0xF1F0) { // special string table entries for system commands m_nIDTracking = ID_COMMAND_FROM_SC(nItemID); ASSERT(m_nIDTracking >= AFX_IDS_SCFIRST && m_nIDTracking < AFX_IDS_SCFIRST + 31); } else { // track on idle m_nIDTracking = nItemID; } }
void CFrameWnd::OnMenuSelect( UINT nItemID, UINT nFlags, HMENU hSysMenu ) /***********************************************************************/ { CWnd::OnMenuSelect( nItemID, nFlags, hSysMenu ); if( nFlags == 0xFFFF && hSysMenu == NULL ) { CFrameWnd *pFrame = GetTopLevelFrame(); ASSERT( pFrame != NULL ); if( pFrame->m_bHelpMode ) { SetMessageText( AFX_IDS_HELPMODEMESSAGE ); } else { SetMessageText( AFX_IDS_IDLEMESSAGE ); } } else { if( nFlags & MF_POPUP ) { SetMessageText( _T("") ); } else if( nItemID >= AFX_IDM_FIRST_MDICHILD ) { SetMessageText( AFX_IDS_MDICHILD ); } else if( nItemID >= 0xF000 && nItemID < 0xF1F0) { SetMessageText( ID_COMMAND_FROM_SC( nItemID ) ); } else { SetMessageText( nItemID ); } } }
void CFrameWnd::OnSysCommand( UINT nID, LPARAM lParam ) /*****************************************************/ { CFrameWnd *pFrame = GetTopLevelFrame(); ASSERT( pFrame != NULL ); if( pFrame->m_bHelpMode && (nID == SC_SIZE || nID == SC_MOVE || nID == SC_MINIMIZE || nID == SC_MAXIMIZE || nID == SC_NEXTWINDOW || nID == SC_PREVWINDOW || nID == SC_CLOSE || nID == SC_RESTORE || nID == SC_TASKLIST) ) { if( !::SendMessage( m_hWnd, WM_COMMANDHELP, 0, HID_BASE_COMMAND + ID_COMMAND_FROM_SC( nID ) ) ) { ::SendMessage( m_hWnd, WM_COMMAND, ID_DEFAULT_HELP, 0L ); } } else { CWnd::OnSysCommand( nID, lParam ); } }