⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_16404.htm

📁 一些关于vc的问答
💻 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-&gt;GetDlgItem(IDC_SCREEN);//希望点击有效的区域<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//一个静态文本区<BR>WndView-&gt;GetWindowRect(rectView);//希望得到区域大小<BR><BR>if ( rectView.PtInRect(point))<BR>{<BR>&nbsp;&nbsp;&nbsp;&nbsp;PopMenu.LoadMenu(IDR_POPMENU);<BR>&nbsp;&nbsp;&nbsp;&nbsp;PopMenu.GetSubMenu(0)-&gt;TrackPopupMen(TPM_LEFTALIGN|TPM_RIGHTBUTTON,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;point.x,point.y,this);&nbsp;&nbsp;&nbsp;&nbsp;<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-&gt;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-&gt;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 + -