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

📄 subject_21392.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:21392 发表者:cdx80 发表日期:2002-11-16 22:30:17
<br>主题:有关CDC类的问题,望解答
<br>内容:我编了一个程序,当鼠标单击其主界面上一个停靠在左侧的对话框时(其实是加在一个工具栏上的Child属性的对话框),通过其调用View类的一个成员函数,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMyDlg::OnLbuttondown(.....)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .....<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMyView* pView=NULL;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pView-〉draw1();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;......}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;而函数为:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CMyView::draw1()<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CClientDC dc(this);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dc.FillSolidRect(0,0,100,100,RGB(0,0,0));<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ....<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR><BR>在客户区画图,<BR>结果画出来的图是以整个屏幕为客户区的,不只是怎么回事?是不是指针传递又问题?应该怎样修改呢?
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:未出手的飞刀 回复日期:2002-11-17 04:50:33
<br>内容:<BR>CMyView* pView=NULL;&nbsp;&nbsp; //注意,现在pView == NULL<BR>pView-〉draw1();&nbsp;&nbsp; //通过NULL调用draw1()<BR><BR>CClientDC dc(this); //此时this == NULL<BR>dc.FillSolidRect(0,0,100,100,RGB(0,0,0));<BR><BR>因为CClientDC dc(NULL)得到的dc是整个屏幕的,<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>
回复者:cdx80 回复日期:2002-11-17 12:08:34
<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>
回复者:wusongqi 回复日期:2002-11-17 12:50:50
<br>内容:最后调用::ClipCursor将鼠标限定在指定的屏幕坐标内<BR> : <BR> :<BR>SetCapture();//捕获鼠标<BR>RECT Rect;<BR>GetClientrect(&amp;Rect);<BR>ClientToScreen(&amp;Rect);<BR>::ClipCursor(&amp;Rect);<BR> :<BR> :<BR>你可以调用::ReleaseCapture 结束鼠标捕获<BR>向::ClipCursor函数传递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>
<font color=red>答案被接受</font><br>回复者:未出手的飞刀 回复日期:2002-11-17 14:45:49
<br>内容:<BR>获取pView的方法很多,但要根据你的程序的结构选用,<BR>不知道用<BR>CFrameWnd* pMain = (CFrameWnd*)AfxGetMainWnd() ;<BR>CView* pView = pMain-&gt;GetActiveView() ;<BR><BR>,最无奈的方法是把view指针保存到一个全局变量中
<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 + -