MFC实时显示鼠标坐标
实时显示鼠标坐标
方法一:在窗口的客户区实时显示鼠标坐标
以左上角为例,直接在鼠标移动消息的响应函数中添加以下代码。
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实时显示鼠标坐标相关推荐
- 基于JQuery实现鼠标滑过(类似hover)图片(或Canvas),实时获取鼠标坐标位置
前言: 尝试制作web端物体标注的时候,虽然利用Canvas可以标注物体,但缺少像LabelImg那样可以利用十字星定位鼠标起点的辅助功能.一直认为可以通过鼠标hover事件实时获取鼠标位置,尝试后无 ...
- 利用鼠标在图像上画框并实时显示鼠标所点击处坐标
我们在做小型项目的时候,有时为了实现良好的交互,或者更方便实时观察输入数据,通常需要使用到下列几项功能: 1.利用鼠标在所显示的图像/视频中选取ROI区域 2.实时显示鼠标所点击位置处的坐标信息 本文 ...
- QT5界面操作2:如何用状态栏显示鼠标坐标
在文 QT界面操作1:如何跟踪鼠标位置?实现了鼠标位置捕获,这里用两种方式显示鼠标坐标 1)状态栏显示 2)窗口刷新显示 先看如何获取鼠标位置的代码. import sys from PyQt5.Q ...
- JS实时获取鼠标坐标
简单练习,先上图 非常简单,只是一个onmousemove事件的处理 <!DOCTYPE html> <html lang="en"> <head&g ...
- 【Qt系列】实时显示鼠标位于QGraphicsView或QGraphicsScene坐标点
演示效果 坐标点的显示在右下角. 前言 在Graphics View框架结构主要包含三个类:场景类(QGraphicsScene).视图类(QGraphicsView)和图元类(QGraphicsIt ...
- EXCEL实时获取鼠标坐标(稳定)
先看效果: 先添加类模块,命名为 MousePosition MousePosition类模块代码: Option ExplicitPrivate Declare PtrSafe Function ...
- Win32 API 显示鼠标坐标位置
在窗口过程添加如下代码:如果还不会新建Win32项目,参阅Petzold的书: case WM_RBUTTONDOWN :hdc=GetDC(hwnd);x = GET_X_LPARAM(lParam ...
- MFC 隐藏/显示鼠标图标
ShowCursor(FALSE);//隐藏鼠标图标 ShowCursor(TRUE);//显示鼠标图标
- MFC编程 -- 获取鼠标坐标位置
一.源代码 int x = GET_X_LPARAM(lParam); int y = GET_Y_LPARAM(lParam); TCHAR s[256]; _stprintf_s(s,_count ...
最新文章
- PrestaShop 网站漏洞修复如何修复
- Scala---For语句段
- Mac开发环境配置 就喜欢折腾
- c语言题-牛牛做水题
- vue移动端弹框组件
- SQL编程题-----1
- Kubernetes + .NET Core 的落地实践
- Linux:ps命令以及进程状态详解
- Java NIO---1
- 异常日志处理-ThrowsAdvice
- linux管理包安装软件命令,和vi/vim使用方法
- ajax传递json对象 php,PHP传递通过AJAX传递JSON对象数组到前台,前台解析,遍历JSON...
- win10 使用点滴
- “按字典序输出方案” 解决方法
- 她每天吃一个煮熟的苹果,从此打开了通往新世界的大门~
- Ubuntu18.04安装GoldenDict词典【词库】
- flink实战--核心概念解析和应用
- 台式电脑怎么锁定该计算机,教大家电脑整个键盘锁了怎么办
- 量子计算机原理与退火算法的通俗解释
- 针对异常java.lang.IllegalStateException onMeasure() did not set the measured dimension解决方法