CMenu::TrackPopupMenu

msdn中CMenu::TrackPopupMenu的原型声明如下BOOLTrackPopupMenu(UINTnFlags,intx,inty,CWnd*pWnd,LP... msdn中CMenu::TrackPopupMenu的原型声明如下
BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL );
而使用时却这样使用
void CMyView::OnRButtonDown(UINT nFlags, CPoint point)
{
CView::OnRButtonDown(nFlags, point);

CMenu* menu_bar = AfxGetMainWnd()->GetMenu();
CMenu* file_menu = menu_bar->GetSubMenu(0);
ASSERT(file_menu);

file_menu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, point.x,
point.y, this);
}
看最后一个括号前面的一行,为什么矩形参数用this呢?高手们往解答下
展开
 我来答
百度网友9422e23cc
2012-01-17 · 超过29用户采纳过TA的回答
知道答主
回答量:100
采纳率:0%
帮助的人:87.1万
展开全部
BOOL TrackPopupMenu( UINT nFlags, int x, int y, CWnd* pWnd, LPCRECT lpRect = NULL );

pWnd
Identifies the window that owns the pop-up menu.
楼上的别乱说 指针这个参数怎么能忽略 他指向的是他的拥有者窗口 如果忽略 第一 编译不通过 第二 没有父窗口 创建失败
因为这里LZ你的代码是写在void CMyView::OnRButtonDown(UINT nFlags, CPoint point)函数里的 所以this指针指向的是View类窗口 那个Button对象 也就是PopupMenu的拥有者
名片
2024-10-28 广告
作为优菁科技(上海)有限公司的一员,Altair HyperWorks是我们重点代理的CAE软件套件。该软件以其全面的仿真能力、丰富的建模工具和高效的优化设计功能著称,广泛应用于汽车、航空航天、能源及电子等行业。HyperWorks通过集成... 点击进入详情页
本回答由名片提供
救赎削肾客
2012-01-16 · TA获得超过1186个赞
知道大有可为答主
回答量:1196
采纳率:0%
帮助的人:954万
展开全部
这个参数可以忽略
追问
说了等于没说,
追答
也就是说这里没意义,ok?
msdn里边有明确的说明啊,可以是null!你随便写个都可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aa164030
2012-07-07
知道答主
回答量:1
采纳率:0%
帮助的人:1613
展开全部
仁兄,一楼二楼都没有错,而是你问题不够清晰
TrackPopupMenu里面有5个参数,最后一个是带缺省的参数,一般可以不用写,而你说的this是
CWnd* pWnd,指向当前拥有者窗口对象的指针(即是View类窗)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式