📄 subject_16404.htm
字号:
<p>
序号:16404 发表者:Strider 发表日期:2002-09-28 10:52:32
<br>主题:关于得到对话框中一个button、picture以及static等的RECT
<br>内容:为实现在对话框指定区域中右击鼠标弹出菜单,在CDialog::OnContextMenu(CWnd* pWnd, CPoint point)中添加如下代码:<BR>CMenu PopMenu;<BR>CRect rectView;<BR>CStatic * WndView ;<BR>WndView = (CStatic *)pWnd->GetDlgItem(IDC_SCREEN);//希望点击有效的区域<BR> //一个静态文本区<BR>WndView->GetWindowRect(rectView);//希望得到区域大小<BR><BR>if ( rectView.PtInRect(point))<BR>{<BR> PopMenu.LoadMenu(IDR_POPMENU);<BR> PopMenu.GetSubMenu(0)->TrackPopupMen(TPM_LEFTALIGN|TPM_RIGHTBUTTON,<BR> point.x,point.y,this); <BR>}<BR>可运行时报错,无法得到指定区域的范围。请高手帮助,指出上面的错误,解决如何得到对话框中一个button、picture以及static等的RECT。谢谢!!<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:iwill 回复日期:2002-09-28 11:01:02
<br>内容:GetWindowRect之后加一句ScreenToClient(rectView);
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Strider 回复日期:2002-09-28 11:11:55
<br>内容:谢谢 iwill !<BR>可是,问题在于单步执行时到WndView->GetWindowRect(rectView)就报错了!<BR>IDC_SCREEN是一个CStatic类的ID。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:iwill 回复日期:2002-09-28 11:19:08
<br>内容:得判一下WndView是不是NULL<BR><BR>调试一下就知道怎么错的了
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:Strider 回复日期:2002-09-28 11:28:15
<br>内容:调试证明WndView的确是NULL,也就是<BR>WndView = (CStatic *)pWnd->GetDlgItem(IDC_SCREEN);有问题;改为<BR>WndView = (CStatic *)GetDlgItem(IDC_SCREEN);问题就解决了。<BR>请问pWnd在这里不是当前对话框的CWnd吗?<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:iwill 回复日期:2002-09-28 11:34:22
<br>内容:右键点击的子窗口的指针,可能会是NULL
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:zhaodongliang 回复日期:2002-09-29 17:33:30
<br>内容:哥们,这段程序唯一的错误就是把"TrackPopupMenu"写成了"TrackPopupMen",其他的没错,完全符合你的要求。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -