1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| case WM_RBUTTONUP :
HMENU hMenu = NULL, hMenuRes = NULL;
hMenuRes=LoadMenu((HINSTANCE)GetWindowLong(m_hWnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDR_TRAYMENU));
if (hMenuRes == NULL)
return;
hMenu = CreatePopupMenu();
if (hMenu == NULL)
return;
for (int i=0; i<GetMenuItemCount(hMenuRes); i++)
{
TCHAR szTemp[80];
int id, uFlags;
GetMenuString(hMenuRes, i, szTemp, sizeof(szTemp), MF_BYPOSITION);
id=GetMenuItemID(hMenuRes, i);
uFlags=(0==id) ? MF_SEPARATOR : MF_STRING | MF_ENABLED;
AppendMenu(hMenu, uFlags, id, szTemp);
}
POINT p;
GetCursorPos(&p);
TrackPopupMenu(hMenu, TPM_LEFTALIGN | TPM_LEFTBUTTON, p.x, p.y, 0, m_hWnd, NULL);
// Détruire le menu
if (IsMenu(hMenu))
DestroyMenu(hMenu);
break; |
Partager