VC++ 右键菜单

voidCMyClockDlg::OnContextMenu(CWnd*pWnd,CPointpoint){//TODO:Addyourmessagehandlercod... void CMyClockDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
CMenu m_popMenu;
m_popMenu.LoadMenu(IDR_MENU1);
CMenu* pSubMenu=m_popMenu.GetSubMenu(0);
pSubMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,point.x,point.y,this);
}
由于我做的是一个桌面时钟,所以桌面上只有时分秒针和表盘,我的目的是想让鼠标右击时产生一个退出按钮,可是不起作用,为什么呀。如果我要是把我的表加上一个蓝框的话,右击时就会弹出菜单(仅限在蓝框上右击)。
展开
 我来答
闫恨容
2013-03-15 · TA获得超过214个赞
知道答主
回答量:8671
采纳率:33%
帮助的人:1325万
展开全部
TrackPopupMenu之前。

新的菜单资源IDR_MENU1,然后添加新闻添加oncontextmenu此类View类中,添加以下代码:

无效CRMenuView :: oncontextmenu此(的CWnd * PWND,口岸系统点) /> {

/ / TODO:在此添加消息处理程序代码

CMenu的m_popMenu

m_popMenu.LoadMenu(IDR_MENU1);

CMenu的pSubMenu = m_popMenu.GetSubMenu(0);

pSubMenu - > TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON,point.x,point.y,这一点);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小陆仁
2013-01-17 · TA获得超过162个赞
知道小有建树答主
回答量:255
采纳率:0%
帮助的人:168万
展开全部
WM_CONTEXTMENU 消息就是 在蓝框上右击 才会响应
你可以考虑右击事件 通过
DWORD dwPos = GetMessagePos();
CPoint point( LOWORD(dwPos), HIWORD(dwPos) );
得到对应的point
可能还要调用 ClientToScreen(&point);
追问
实不相瞒,本人为做一个时钟,MFC只学了两天,好多东西都不懂,能不能说的具体一些。谢谢了
追答
百度函数的作用吧
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nick20915
2013-01-17 · 超过24用户采纳过TA的回答
知道答主
回答量:53
采纳率:100%
帮助的人:42万
展开全部
我测试了一下,我在dialog上响应OnContextMenu完全没问题。。
追问
我的表盘是一个Static控件做的吧,所以我的右键无法点击在对话框上,只能点击到这个子控件上了。 而这个OnContextMenu可能这能在框上相应吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式