Многие программы показывают Pop-Up меню при щелчке на их иконке,  помещенной на Tray, как этого добиться ?

 

Вы  должны  обрабатывать сообщение, указанное вами при добавлении   иконки  на Tray. При значении (UINT)lParam, равном WM_RBUTTONDOWN  (это обычно дял Pop-Up меню по правой кнопке), или любому другому  необходимому   вам,  вы  должны  вызовом  функции  GetCursorPos()  получить  позицию  курсора в момент события (вряд ли пользователь     успеет  убрать  мышь  за время обработки сообщения, особенно если   он ожидает меню), получить вескриптор Pop-Up меню одним из многих  способов  (LoadMenu(),  GetSubMenu(),  CreateMenu(),  и  т.д.)  и    выполнить следующий код:       

Code:

SetForegroundWindow(hWnd);

TrackPopupMenuEx(hMenu,TPM_HORIZONTAL|TPM_LEFTALIGN,x, y,hWnd, NULL);

DestroyMenu(hMenu);

PostMessage(hWnd,WM_USER,0,0);   

 

 

где  hWnd  -  дескриптор окна, которое будет обрабатывать команду  меню, 

hMenu - дескриптор меню,

x  и  y  -  позиция  курсора.

 

Для подробностей смотрите Win32 SDK Help по функции TrackPopupMenuEx.

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить