注册 登录
编程论坛 VC++/MFC

MFC动态显示坐标悬浮框问题

再多一点 发布于 2013-10-23 16:25, 775 次点击
我在静态文本控件上显示图形,想要读出鼠标所在位置的坐标,且显示坐标的悬浮框跟随鼠标移动。当悬浮框移动到显示图形的区域时悬浮框就会闪,在非画图区域显示正常。
跟踪鼠标移动的消息响应函数为:
CWnd *pWnd=GetDlgItem(IDC_TEXT);
if (pWnd)
{
    CDC *pDC=GetDC();
    CRect rt;
     pWnd->GetWindowRect(&rt);

    int xx=point.x-rt.Width();
    int yy=point.y-rt.Height();//显示框的位置

//      int xx=100;
//      int yy=100;

     int xxx=point.x;
     int yyy=point.y;//鼠标位置
     pWnd->MoveWindow(xx,yy,rt.Width(),rt.Height(),TRUE);
    CString str;
    str.Format("%d,%d   ",xxx,yyy);
    pDC->SetTextColor(RGB(0,0,250));
    pDC->TextOut(xx,yy,str,8);
   
 }
当悬浮框位置固定时,不闪,但图形重绘会将其覆盖,怎么解决?
谢谢
6 回复
#2
yuccn2013-10-23 17:39
不太明白你想干什么、
悬浮框?是指主对话框还是你另外写了一个类似迅雷的那个悬浮框

当悬浮框位置固定时,不闪,但图形重绘会将其覆盖,怎么解决?
这个我真看不懂你是想“将其覆盖”还是说“被覆盖了怎么解决”

你是在MouseMove 函数内部做处理还是启动计时器来做处理?
#3
再多一点2013-10-24 09:06
回复 2楼 yuccn
是要在框内显示坐标。
图形重绘将显示坐标的悬浮框覆盖了,应该怎么解决
#4
再多一点2013-10-24 09:08
回复 2楼 yuccn
在MouseMove函数里做的处理。因为是要显示鼠标移动到的位置
#5
yuccn2013-10-24 09:58
把工程发出来悄悄?
#6
再多一点2013-10-24 10:39
谢谢。
只有本站会员才能查看附件,请 登录

我是想移动鼠标,显示鼠标所指的己画图形的点的坐标,并且显示框随鼠标移动。现在鼠标在画图区域移动,显示框不能显示坐标,还不能及时跟鼠标移动。
#7
yuccn2013-10-24 12:59
估计是更新窗口的时候,又被OnPain 里面的画图重掉了(被挡住了)。

你试试把绘制坐标的事件封装下,在MouseMove 时候刷新窗口,在刷新窗口的最后动作(InvalidateRect(rect,FALSE);)来 调用 绘制坐标的绘图 试试。

ps,你的代码很乱,缩进不好,同时命名很不规范,什么xxx ,yyy这样的命名,很搓
1