用win32写的程序,创建好了右键菜单点击了没反应

Just for fun! :-) 2016-09-08 05:36:25
用win32写的程序,已经创建好了右键菜单,点击右键可以正常弹出菜单,可以用左键点击菜单中的选项时就没反应了,什么原因啊?请高手指点一下,谢谢!
...全文
331 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Just for fun! :-) 2016-09-11
  • 打赏
  • 举报
回复
//显示快捷菜单 TrackPopupMenu(hpop, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON, px, py, 0, (HWND)wParam, //问题出在这里,要把它改成父窗口句柄hwnd。真是的,这么点小问题困扰了我好久,以后一定要看仔细了! NULL);
Just for fun! :-) 2016-09-09
  • 打赏
  • 举报
回复
case WM_CONTEXTMENU: { //加载菜单资源 HMENU hroot = LoadMenu((HINSTANCE)GetWindowLong(hWnd, GWL_HINSTANCE), MAKEINTRESOURCE(IDR_CONTEXT)); if(hroot) { // 获取第一个弹出菜单 HMENU hpop = GetSubMenu(hroot,0); // 获取鼠标右击是的坐标 int px = GET_X_LPARAM(lParam); int py = GET_Y_LPARAM(lParam); //显示快捷菜单 TrackPopupMenu(hpop, TPM_LEFTALIGN | TPM_TOPALIGN | TPM_RIGHTBUTTON, px, py, 0, (HWND)wParam, NULL); // 用完后要销毁菜单资源 DestroyMenu(hroot); } else { DefWindowProc(hWnd, uMsg, wParam, lParam); } } break; 这就是我创建右键菜单的代码,点击右键菜单可以正常弹出,可点击其中的项就是没反应,我是在主窗口的消息处理函数中对WM_COMMAND消息响应的,应该也没错,为什么就是没反应啊。我在主窗口中建了一个富文本框,我在主窗口的客户区内也就是富文本框控件里点击右键菜单没反应,可在富文本框以外的菜单栏点击右键菜单又有效,这是什么原因?难道是富文本框控件把WM_COMMAND消息屏蔽掉了,因为我如果去掉富文本框让客户区域空着就一切正常了。网上查了很久都没找到原因!!!
lyhoo163 2016-09-09
  • 打赏
  • 举报
回复
1、创建好了右键菜单 2、指定控件与它关联 3、为右键菜单事件写执行代码 上述步骤都完成了吗?
Just for fun! :-) 2016-09-09
  • 打赏
  • 举报
回复
那应该发在哪个版块?也没有个c语言版块啊,发到Delphi版块也没错吧?
lyhoo163 2016-09-09
  • 打赏
  • 举报
回复
代码是C语言,楼主贴错地方了。
Just for fun! :-) 2016-09-08
  • 打赏
  • 举报
回复
我是到点击右键菜单项应该是产生一个WM_COMMAND消息,我就是在winproc中响应这个消息可就是没反应,到底什么原因啊?难道我点击的右键菜单项没产生任何消息吗,不可能啊!

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧