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 ) ); } } }
/* * 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 */