界面难题:为什么属性页中弹出式菜单不起作用?(有内容)

Atan 2000-01-28 10:36:00
我在VC程序中建立一个属性表,表中有若干属性页,
在其中一个属性页中的WM_CONTEXTMENU事件中装入弹出式
菜单,代码如下:
CMenu * pMenu;
pMenu = new CMenu;//初始化指针
if (pMenu->LoadMenu(IDR_MENU))
{
CMenu* pPopup = pMenu->GetSubMenu(0);
ASSERT(pPopup != NULL);
pPopup->TrackPopupMenu(TPM_RIGHTBUTTON and TPM_LEFTALIGN,
point.x, point.y, //坐标
AfxGetMainWnd()); // route commands through main window
}
执行,菜单正确弹出,但是没有接到菜单项的消息,(点击菜单项不执行相应处理程序)
百思不得其解,请大侠们帮助试验一下.告诉小弟为什么?谢谢!
...全文
138 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Atan 2000-01-29
  • 打赏
  • 举报
回复
谢谢大家!问题解决.只把AfxGetMainWnd()改为this就行了.这个参数粗心抄错了.
longx 2000-01-29
  • 打赏
  • 举报
回复
用AfxGetMainWnd()菜单项消息发给主框架,而不是当前的属性页窗口
longx 2000-01-29
  • 打赏
  • 举报
回复
CMenu * pMenu;
pMenu = new CMenu;//初始化指针
if (pMenu->LoadMenu(IDR_MENU))
{
CMenu* pPopup = pMenu->GetSubMenu(0);
ASSERT(pPopup != NULL);
//add
CWnd* pWndPopupOwner = this;
while (pWndPopupOwner->GetStyle() & WS_CHILD)
pWndPopupOwner = pWndPopupOwner->GetParent();
SetForegroundWindow();

pPopup->TrackPopupMenu(TPM_RIGHTBUTTON and TPM_LEFTALIGN,
point.x, point.y, //坐标
pWndPopupOwner); // route commands through main window

}

604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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