Re[2]: контекстное меню и системный трей
От: Byt Россия  
Дата: 21.06.07 03:41
Оценка:
Здравствуйте, 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)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.