📄 subject_24981.htm
字号:
<p>
序号:24981 发表者:石松 发表日期:2002-12-18 11:20:25
<br>主题:很菜的一个问题,画图时如何刷新窗口
<br>内容:我是VC初学者,昨天写了一个读位图的程序,我想显示坐标,但在MOUSE移到一个新的点,旧的无法清除,我用InValidate()也无法解决问题<BR>void CAodemoView::OnMouseMove(UINT nFlags, CPoint point) <BR>{<BR> // TODO: Add your message handler code here and/or call default<BR>CDC *pMyDC;<BR>pMyDC = GetDC();<BR><BR>CPoint OldPoint;//保存旧点<BR>OldPoint = point;<BR>CString strDisplay;<BR>strDisplay.Format("x=%d,y=%d",point.x,point.y);<BR>if((point.x>m_nWidth)||(point.y>m_nHeight))//此处为位图范围<BR>{<BR> return;//在位图范围之外不要显示坐标<BR>}<BR>if(FileOpen!=2)//位图打开标记<BR>return;<BR><BR>pMyDC->TextOut(point.x+10,point.y+10,strDisplay);<BR>if(point!=OldPoint)//我想如果新的位置和旧的不同则刷新<BR>{<BR> Invalidate();<BR>}<BR>ReleaseDC(pMyDC);<BR>CView::OnMouseMove(nFlags, point);<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-12-18 11:36:05
<br>内容:CPoint OldPoint;//保存旧点 <BR><BR>if(point!=OldPoint)//这句话不会被执行!!!!!!!!!!!!!!<BR>{<BR> Invalidate();<BR>}<BR><BR><BR>要把CPoint OldPoint;定义在外面<BR>if(point!=OldPoint)//<BR>{<BR> Invalidate();<BR>}<BR>OldPoint = point;<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>
回复者:石松 回复日期:2002-12-18 11:46:11
<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>
回复者:杨小兵 回复日期:2002-12-18 11:53:48
<br>内容:你可以加个记数变量<BR>当是如5的倍数时才执行其他的就return!<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>
回复者:石松 回复日期:2002-12-18 13:50:12
<br>内容:我想这样不行,我是想通过MFC来解决,请高手予以指点,如何重画窗口?
<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>回复者:lin 回复日期:2002-12-18 17:36:27
<br>内容:应尽量使用Invalidate(FALSE)或InvalidateRect(rect,FALSE);<BR>而少用Invalidate()<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>
回复者:大宁子 回复日期:2002-12-18 17:43:25
<br>内容:显示图象用 Invalidate() 显示文本用UpdateData()
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:石松 回复日期:2002-12-18 22:41:22
<br>内容:虽然lin说的没错,但是我还要问一下,如果我想让MOUSE不动的情况下,显示所在点的坐标,那要如何作
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:lin 回复日期:2002-12-19 08:14:38
<br>内容:代码不变,只要不执行引起重画窗口的操作,点的坐标应该会一直显示<BR><BR>如果重画窗口后,移动Mouse,坐标就会出现<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>
回复者:石松 回复日期:2002-12-19 10:07:13
<br>内容:LIN:你说说如何既不会窗口闪烁,同时显示坐标?谢!
<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 + -