Ejemplo n.º 1
0
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;
	}
}
Ejemplo n.º 2
0
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 );
        }
    }
}
Ejemplo n.º 3
0
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 );
    }
}