Здравствуйте, budko, Вы писали:
B>можно так, если я правильно понял, что вы хотите: B>BOOL ShowMyPopupMenu( const int & x, const int & y ) B>{ B> enum EnumMenuItems{ MENU_1, MENU_2, MENU_3 }; B> HMENU hMainTrayMenu = ::CreatePopupMenu();
B> InsertMenu( hMainTrayMenu, -1, MF_BYPOSITION | MF_STRING, MENU_1, TEXT("1") ); B> InsertMenu( hMainTrayMenu, -1, MF_BYPOSITION | MF_STRING, MENU_2, TEXT("2") ); B> InsertMenu( hMainTrayMenu, -1, MF_BYPOSITION | MF_STRING, MENU_3, TEXT("3") );
B> switch( TrackPopupMenuEx( hMainTrayMenu, TPM_RETURNCMD, x, y, m_hWnd, 0L ) ) B> { B> case MENU_1: B> // .... B> break; B> case MENU_2: B> // .... B> break; B> case MENU_3: B> // .... B> break; B> default: B> // ... B> break; B> }
B> return TRUE; B>}
большое спасибо!
в данном примере есть одна не точность.
TrackPopupMenuEx(...) возвращает 0 если пункт меню не был выбран.
MENU_1 по умолчанию имеет значение 0 если ему не задать конкретное значение.
и получается что мы ничего не выбрали меню скрылось и у нас выполнелось что-то что описано в
case MENU_1:
// ....
break;
и тут сразу еще один вопрос.
в функцию ShowMyPopupMenu передаются координаты верхнего левого угла менюшки.
если задать координаты таким образом что менюша не смогла бы развернуться вниз,
то она отрисовывается снизу вверх с самого низа эрана при этом перекрывая трей. можно ли сделать так что бы она всплывала
снизу вверх но не с самого низа экрана а начиная с трея? (так как высплывает менюшка когда тыкаем на иконку bluetooth)