Ну не знаю... у меня есть вот такой обработчик
Код | case WM_CONTEXTMENU: hPopupMenu=LoadMenu(hInst,MAKEINTRESOURCE(IDR_MENULIST)); GetCursorPos(&mouse); hSubMenu=GetSubMenu(hPopupMenu,0); SetMenuDefaultItem(hSubMenu,IDM_PLAIN,FALSE); SetForegroundWindow(hwnd); // To find out more, search for Q135788 in MSDN. TrackPopupMenuEx(hSubMenu,0,mouse.x,mouse.y,hwnd,NULL); PostMessage(hwnd,WM_NULL,0,0); DestroyMenu(hPopupMenu); return 0;
// сообщения от меню обрабатываются как обычно.....
|
и вот такой
Код | BOOL OnRightClickContact(NMITEMACTIVATE *plvdi) { DWORD menuID; HMENU hSubMenu, hPopupMenu; LVHITTESTINFO hittest;
//............................. ClientToScreen(hwndContactList,&hittest.pt); hPopupMenu=LoadMenu(hInst,MAKEINTRESOURCE(IDR_LISTMENU)); hSubMenu=GetSubMenu(hPopupMenu,0); SetMenuDefaultItem(hSubMenu,IDM_REPLY,FALSE); SetForegroundWindow(hwndContactList); // To find out more, search for Q135788 in MSDN. menuID=TrackPopupMenu(hSubMenu,TPM_LEFTALIGN|TPM_TOPALIGN|TPM_RETURNCMD,hittest.pt.x,hittest.pt.y,0,hwndContactList,NULL);
switch (menuID) {
case IDM_FAWOR: //............................ break;
case IDM_SELECTALL: //............................ break; default: break; }
DestroyMenu(hPopupMenu); return TRUE; }
|
|