TrackPopupMenu win32API 怎么进行消息响应
TrackPopupMenu win32API 如何进行消息响应
怎么右键单击菜单 没有响应 没有弹出消息框
------解决方案--------------------
右键的消息应该是WM_RBUTTONDOWN,不是WM_CONTEXTMENU
------解决方案--------------------
厉害,这都被你发现了
------解决方案--------------------
看不出来什么,代码贴多点再看吧,可能别的地方出了问题。
------解决方案--------------------
- C/C++ code
hmenu=CreatePopupMenu(); InsertMenu(hmenu,ID_FREE, MF_BYCOMMAND,MF_POPUP,"释放鼠标"); InsertMenu(hmenu,ID_GET, MF_BYCOMMAND,MF_POPUP,"捕获鼠标");
- C/C++ code
case WM_CONTEXTMENU: { POINT point; GetCursorPos(&point); ScreenToClient(hwnd,&point); TrackPopupMenu(hmenu,TPM_LEFTALIGN,point.x,point.y,0,hwnd,NULL); } break;
- C/C++ code
case WM_COMMAND: { switch(wParam) { case 1: ClipCursor(NULL); break; case ID_FREE: MessageBox(hwnd,"d"," ",MB_OK); break; } } break;
怎么右键单击菜单 没有响应 没有弹出消息框
------解决方案--------------------
右键的消息应该是WM_RBUTTONDOWN,不是WM_CONTEXTMENU
------解决方案--------------------
厉害,这都被你发现了
------解决方案--------------------
看不出来什么,代码贴多点再看吧,可能别的地方出了问题。
------解决方案--------------------
- C/C++ code
case WM_CONTEXTMENU: { UINT xPos = LOWORD(lParam); UINT yPos = HIWORD(lParam); RECT rc; GetClientRect(hDlg, &rc); POINT pt = {xPos, yPos}; ScreenToClient(hDlg, &pt); if (PtInRect(&rc, pt)) { TrackPopupMenu(hmenu,TPM_LEFTALIGN,point.x,point.y,0,hwnd,NULL); return TRUE; } else return FALSE; }