示例#1
0
void WHandleMenuSelect( WStatBar *wsb, HMENU menu, WPARAM wParam, LPARAM lParam )
{
    HMENU   popup;
    WORD    flags;

    if( wsb == NULL || menu == NULL ) {
        return;
    }

    if( MENU_CLOSED( wParam, lParam ) ) {
        WSetStatusText( wsb, NULL, "" );
    } else {
        flags = GET_WM_MENUSELECT_FLAGS( wParam, lParam );
        if( flags & (MF_SYSMENU | MF_SEPARATOR) ) {
            WSetStatusText( wsb, NULL, "" );
        } else if( flags & MF_POPUP ) {
#ifdef __NT__
            popup = GetSubMenu( (HMENU)lParam, GET_WM_MENUSELECT_ITEM( wParam, lParam ) );
#else
            popup = (HMENU)GET_WM_MENUSELECT_ITEM( wParam, lParam );
#endif
            WHandlePopupHint( wsb, menu, popup );
        } else {
            WDisplayHint( wsb, GET_WM_MENUSELECT_ITEM( wParam, lParam ) );
        }
    }
}
示例#2
0
/*
 * HintMenuSelect - handle the WM_MENUSELECT message
 */
void HintMenuSelect( statwnd *wnd, HWND hwnd, WPARAM wparam, LPARAM lparam )
{
    HMENU       hmenu;
    WORD        flags;
    msg_id      msgid;

    if( MENU_CLOSED( wparam, lparam ) ) {
        updateHintText( wnd, HINT_EMPTY );
    } else {
        hmenu = GetMenu( hwnd );
        flags = GET_WM_MENUSELECT_FLAGS( wparam, lparam );
        if( flags & (MF_SYSMENU | MF_SEPARATOR) ) {
            updateHintText( wnd, HINT_EMPTY );
        } else if( flags & MF_POPUP ) {
            //
            // NYI handle popup message hints
            //
        } else {
            msgid = getItemMsg( wnd, GET_WM_MENUSELECT_ITEM( wparam, lparam ) );
            updateHintText( wnd, msgid );
        }
    }

} /* HintMenuSelect */