Menu Tray'a

0

Witam, próbuje zrobić menu do tray'a, tzn:
HMENU trayhMenu;
trayhMenu = LoadMenu(hInstance, MAKEINTRESOURCE(300));
...
if (lParam == WM_RBUTTONDOWN){
POINT point;
GetCursorPos(&point);
int x=point.x, y=point.y;
TrackPopupMenu(trayhMenu,TPM_RIGHTBUTTON,x,y,0,hwnd,0);
PostMessage( hwnd, WM_NULL, 0, 0 );
}

Problem jest w tym, że wyświetlane menu to jest mały pasek (rozmiar około 2x5 px), na którym nawet nie widać co jest napisane co trzeba zrobić żeby rozmiarowo to menu było takie jak trzeba?

0

Wstaw swoje menu do popupa o dowolnej nazwie, np. tray, i zmień kod na

TrackPopupMenu(GetSubMenu(trayhMenu,0),TPM_RIGHTBUTTON,x,y,0,hwnd,0);

Jeżeli potrzebujesz więcej takich popupów - do tray, do jakichś kontrolek - to wstaw wszystko w jedno menu z wieloma popupami, i tylko zmieniaj indeks w GetSubMenu, zamiast tworzyć osobne menu dla każdego popupa.

IDR_POPUPS MENU
BEGIN
  POPUP "_cbackup_" // GetSubMenu(trayhMenu, 0)
  BEGIN
    MENUITEM "Select All",IDM_SELECT_ALL
    MENUITEM "Select None",IDM_SELECT_NONE
    MENUITEM SEPARATOR
    MENUITEM "Toggle Selection",IDM_SELECT_TOGGLE
  END
  POPUP "_process_" // GetSubMenu(trayhMenu, 1)
  BEGIN
    MENUITEM "Kill",IDM_PROCESS_KILL
    MENUITEM "Kill Process Tree",IDM_PROCESS_KILL_TREE
    MENUITEM "Properties",IDM_PROCESS_PROPERTIES
  END
  POPUP "_netstat_" // GetSubMenu(trayhMenu, 2)
  BEGIN
    MENUITEM "Close Connection",IDM_NETSTAT_CLOSECON
  END
END
0

Działa, Dzięki wielkie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1