如何在view区的某一位置显示下一个文字信息时把上一次显示的文字信息消除?(请结合我正文中的原代码)

xutao6973457 2003-09-29 09:03:41
我用App Wizard 创建了一个单文档的应用程序,想在view区显示鼠标的位置。核心的原程序如下:
void CCaptureMouseView::OnMouseMove(UINT nFlags, CPoint point)
{

//SetCapture()和ReleaseCapture函数在void CCaptureMouseView::OnLButtonDown(UINT nFlags, CPoint point) 和OnLButtonDown(UINT nFlags, CPoint point)中书写。
// TODO: Add your message handler code here and/or call default
CDC *pDC = GetDC();
char buf[100];
wsprintf( buf, "鼠标坐标:%d,%d", point.x, point.y);
pDC->TextOut ( 0,10,"鼠标捕获实例");
pDC->TextOut ( 0,30, buf);
CView::OnMouseMove(nFlags, point);
}
现在出现的问题是:若当前鼠标的位置是(20,349),当鼠标移到(2,3)时,由于没有及时刷新,显示的鼠标坐标变成了(2,3349),所以我的问题是当第2次显示鼠标位置时如何将上一个位置的坐标清除掉。请指教。
...全文
60 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
anxing 2003-09-30
  • 打赏
  • 举报
回复
其实标准的显示是最好在OnDraw()里进行操作的。你可以把这些操作写进OnDraw()。
而在CCaptureMouseView::OnMouseMove里可以调用OnInvalidate。
在CCaptureMouseView做一个全局变量存础当前MOUSE当前位置。在OnDrawJ里显示。
vcforever 2003-09-30
  • 打赏
  • 举报
回复
用一个足够程度的空格字符串擦除前面显示的结果就可以了!
例如:pDC->TextOut ( 0,30, " ");
pDC->TextOut ( 0,30, buf);
这样就可以实现楼主的要求了,祝你成功!
wuxfBrave 2003-09-30
  • 打赏
  • 举报
回复
void CCaptureMouseView::OnMouseMove(UINT nFlags, CPoint point)
{

//SetCapture()和ReleaseCapture函数在void CCaptureMouseView::OnLButtonDown(UINT nFlags, CPoint point) 和OnLButtonDown(UINT nFlags, CPoint point)中书写。
// TODO: Add your message handler code here and/or call default
CDC *pDC = GetDC();
char buf[100];
wsprintf( buf, "鼠标坐标:%d,%d", point.x, point.y);
pDC->TextOut ( 0,10,"鼠标捕获实例");
pDC->TextOut ( 0,30, " ");
pDC->TextOut ( 0,30, buf);
CView::OnMouseMove(nFlags, point);
}

写一个长的空格串好了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧