实时显示鼠标坐标

方法一:在窗口的客户区实时显示鼠标坐标
以左上角为例,直接在鼠标移动消息的响应函数中添加以下代码。

void CMFC_DrawView::OnMouseMove(UINT nFlags, CPoint point)
{// TODO: 在此添加消息处理程序代码和/或调用默认值//方法一:在窗口的左上角实时显示鼠标坐标CString str;str.Format(_T("[%d,%d]  "), point.x, point.y); //引号中的两个空格是为了消除重叠现象CDC *pDC = GetDC();pDC->TextOut(0,0,str); //窗口左上角坐标为(0,0),修改可改变鼠标坐标的显示位置ReleaseDC (pDC);CView::OnMouseMove(nFlags, point);
}

运行效果如下:

方法二:在状态栏最左边实时显示鼠标坐标
直接在鼠标移动消息的响应函数中添加以下代码。

void CMFC_DrawView::OnMouseMove(UINT nFlags, CPoint point)
{// TODO: 在此添加消息处理程序代码和/或调用默认值//方法二:在状态栏最左边实时显示鼠标坐标CString str;str.Format(_T("[%d,%d]  "), point.x, point.y);//获得程序状态栏对象的指针,AFX_IDW_STATUS_BAR就是状态栏的ID//它的功能是通过指定的ID来获得子孙窗口GetParent()->GetDescendantWindow(AFX_IDW_STATUS_BAR)->SetWindowText(str);CView::OnMouseMove(nFlags, point);
}

运行效果如下:

方法三:在状态栏添加窗格用来实时显示鼠标坐标
1、打开MainFrm.cpp文件,找到静态数组indicators的定义,在数组中增加一个新的元素,即添加了一个新的窗格。新元素在数组中的位置,对应窗格在状态栏中的位置。
例如,将显示鼠标坐标的窗格放在状态栏的第二个位置,则在第一个数组元素ID_SEPARATOR后面增加一个新的数组元素ID_INDICATOR_MOUSE_POS。

修改后的代码如下:

static UINT indicators[] =
{ID_SEPARATOR,           // 状态行指示器ID_INDICATOR_MOUSE_POS, //鼠标位置坐标值窗格ID_INDICATOR_CAPS,     // 大写 ID_INDICATOR_NUM,     // 数字键 ID_INDICATOR_SCRL,       // 滚动
};

2、在Resource View资源视图中打开String Table字符串资源,然后在最后一行的下一个空白行中,或者任意处点右键选择“New String”,添加一个新的字符串资源。
ID为ID_INDICATOR_MOUSE_POS,Value设为一个不与任何其他字符串资源重复的整数值(一般采用默认值),Caption设为"鼠标的当前坐标",这是为了给时间的显示预留空间,因为状态栏会根据字符串的长度为相应的窗格确定缺省宽度。

3、在鼠标移动消息的响应函数中添加以下代码。
调用函数SetPaneText在窗格中输出当前鼠标位置,由于窗格编号为其在数组中的位置,故其编号从0开始,则第二个窗格的编号为1。

void CMFC_DrawView::OnMouseMove(UINT nFlags, CPoint point)
{// TODO: 在此添加消息处理程序代码和/或调用默认值//方法三:在状态栏实时显示鼠标坐标CString MousePosition;MousePosition.Format(_T("[%4d,%4d]"),point.x,point.y);//获得状态栏的指针CStatusBar* pStatusBar=(CStatusBar*)GetParentFrame()->GetDescendantWindow(ID_VIEW_STATUS_BAR);//在状态栏的第二个窗格中输出当前鼠标位置pStatusBar->SetPaneText(1,MousePosition); //将窗格编号改为0效果与方法二一样CView::OnMouseMove(nFlags, point);
}

4、运行效果如下:

MFC实时显示鼠标坐标相关推荐

  1. 基于JQuery实现鼠标滑过(类似hover)图片(或Canvas),实时获取鼠标坐标位置

    前言: 尝试制作web端物体标注的时候,虽然利用Canvas可以标注物体,但缺少像LabelImg那样可以利用十字星定位鼠标起点的辅助功能.一直认为可以通过鼠标hover事件实时获取鼠标位置,尝试后无 ...

  2. 利用鼠标在图像上画框并实时显示鼠标所点击处坐标

    我们在做小型项目的时候,有时为了实现良好的交互,或者更方便实时观察输入数据,通常需要使用到下列几项功能: 1.利用鼠标在所显示的图像/视频中选取ROI区域 2.实时显示鼠标所点击位置处的坐标信息 本文 ...

  3. QT5界面操作2:如何用状态栏显示鼠标坐标

    在文  QT界面操作1:如何跟踪鼠标位置?实现了鼠标位置捕获,这里用两种方式显示鼠标坐标 1)状态栏显示 2)窗口刷新显示 先看如何获取鼠标位置的代码. import sys from PyQt5.Q ...

  4. JS实时获取鼠标坐标

    简单练习,先上图 非常简单,只是一个onmousemove事件的处理 <!DOCTYPE html> <html lang="en"> <head&g ...

  5. 【Qt系列】实时显示鼠标位于QGraphicsView或QGraphicsScene坐标点

    演示效果 坐标点的显示在右下角. 前言 在Graphics View框架结构主要包含三个类:场景类(QGraphicsScene).视图类(QGraphicsView)和图元类(QGraphicsIt ...

  6. EXCEL实时获取鼠标坐标(稳定)

    先看效果: 先添加类模块,命名为   MousePosition MousePosition类模块代码: Option ExplicitPrivate Declare PtrSafe Function ...

  7. Win32 API 显示鼠标坐标位置

    在窗口过程添加如下代码:如果还不会新建Win32项目,参阅Petzold的书: case WM_RBUTTONDOWN :hdc=GetDC(hwnd);x = GET_X_LPARAM(lParam ...

  8. MFC 隐藏/显示鼠标图标

    ShowCursor(FALSE);//隐藏鼠标图标 ShowCursor(TRUE);//显示鼠标图标

  9. MFC编程 -- 获取鼠标坐标位置

    一.源代码 int x = GET_X_LPARAM(lParam); int y = GET_Y_LPARAM(lParam); TCHAR s[256]; _stprintf_s(s,_count ...

最新文章

  1. PrestaShop 网站漏洞修复如何修复
  2. Scala---For语句段
  3. Mac开发环境配置 就喜欢折腾
  4. c语言题-牛牛做水题
  5. vue移动端弹框组件
  6. SQL编程题-----1
  7. Kubernetes + .NET Core 的落地实践
  8. Linux:ps命令以及进程状态详解
  9. Java NIO---1
  10. 异常日志处理-ThrowsAdvice
  11. linux管理包安装软件命令,和vi/vim使用方法
  12. ajax传递json对象 php,PHP传递通过AJAX传递JSON对象数组到前台,前台解析,遍历JSON...
  13. win10 使用点滴
  14. “按字典序输出方案” 解决方法
  15. 她每天吃一个煮熟的苹果,从此打开了通往新世界的大门~
  16. Ubuntu18.04安装GoldenDict词典【词库】
  17. flink实战--核心概念解析和应用
  18. 台式电脑怎么锁定该计算机,教大家电脑整个键盘锁了怎么办
  19. 量子计算机原理与退火算法的通俗解释
  20. 针对异常java.lang.IllegalStateException onMeasure() did not set the measured dimension解决方法

热门文章

  1. drwtsn32.exe 遇到问题须要关闭。我们对此引起的不便表示抱歉
  2. 2022最炫酷的圣诞树合集(附动态效果展示和网盘源码)
  3. hp510台式计算机,台式PC的呐喊 HP Pavilion 510主机评测
  4. 看不懂代码也能做网站(一)---效果演示以及环境搭建
  5. 为什么要用工厂方法模式
  6. Kafka消费者——从 Kafka读取数据
  7. 突发!LayUI官网宣布下线了
  8. 每日科技分享-代码翻译神器
  9. OFDM系统的PAPR问题
  10. 搜索和替换PPT里面指定字体文字的(某些字体无法随演示文稿一起保存)解决方案