MFC中状态栏显示鼠标坐标位置

原文:MFC中状态栏显示鼠标坐标位置蝈蝈

1,利用MFC向导创建一个应用工程ewq。
2,打开ResourceView,右击Menu菜单,插入Menu,在空白处双击,Caption中填入Point。
3,为Point设置下拉菜单,ID为ID_INDICATOR_POINT;Caption为point;Prompt为X:XXXX,Y:YYYY。

4,打开MainFrm.cpp,在indicators数组中的第二个位置添加ID_INDICATOR_POINT。
5,将MainFrm中的成员变量m_wndStatusBar修改为公有变量,并在视图类中添加头文件#include
"MainFrm.h"。
6,利用类向导添加鼠标移动消息处理函数WM_MOUSEMOVE(),并添加如下代码为:
void CEwqView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call
default
CClientDC  
dc(this);  
CMainFrame *pFrame=(CMainFrame
*)AfxGetApp()->m_pMainWnd;
 
CStatusBar *pStatusBar=(CStatusBar
*)&pFrame->m_wndStatusBar;
 
CString   str;
 
str.Format("X:%d,Y:%d",point.x,point.y);
 
   CSize
size=dc.GetTextExtent(str);  
int
nIndex=pStatusBar->CommandToIndex(ID_INDICATOR_POINT);
 
pStatusBar->SetPaneInfo(nIndex,ID_INDICATOR_POINT,SBPS_NORMAL,size.cx);
 
pStatusBar->SetPaneText(nIndex,str);

CView::OnMouseMove(nFlags, point);
}
7,成功运行,在状态栏中第二个位置显示鼠标的当前坐标。

时间: 2024-10-13 00:08:51

MFC中状态栏显示鼠标坐标位置的相关文章

MFC中状态栏的添加步骤

首先我们创建一个简单的MFC对话框程序,这个创建过程就省略了.假设我的工程名为:CStatusBar1Dlg 测试环境:vc6.0环境下 下面介绍一下如何在对话框上添加状态栏: 第一步: 在CStatusBar1Dlg.h头文件中添加一个状态栏的变量:CStatusBar   m_wndStatusBar; //状态栏对象 第二步: 在字符串表中添加自己需要在状态栏中显示的ID值,详见截图: 第三步: 在CStatusBar1Dlg.h的class外面定义一个结构体: //添加状态栏变量 sta

Winform中控件,鼠标坐标位置计算

Winform中获得鼠标位置的 (是鼠标到屏幕左上角的位置): pt = Cursor.Position; 获得控件距屏幕位置(是控件到屏幕左上角位置) PointToScreen(this.drawingPanel.Location 获得控件距离Form窗体位置: this.drawingPanel.Location 这里需注意鼠标的位置是到屏幕左上角距离,而不是到Form窗体的距离,这里取部分代码截图 //滑动前鼠标距离Panel左上角位置距离                 SizeF s

js获取鼠标坐标位置兼容多个浏览器

这个看似简单的获取坐标功能,可是已经花费我一天时间了,白天一直搜索js获取坐标,找了很多很多,一一检验,结果出现不兼容.真的够烦躁了,但是事情还是要继续,要完成,回来又继续实践,搜索,反复操作,发现自己好多不会呀,特别是jquery自定义方法(函数),根本就不会,很欠缺基础,心里暗暗下决心,弄完这个好好学习一下js,不然老是卡在这方面.时间虽然已经过去很久了,但我还是没有放弃,想想换个关键词搜索一下,是不是可以找到我想要的.搜索“js获取坐标兼容ie8”,一下子出现后几条,于是挑选一个实践,改造

MFC 中MessageBox 显示在所有窗口的最上面

int MessageBox( HWND hWnd,          // handle of owner window LPCTSTR lpText,     // address of text in message box LPCTSTR lpCaption,  // address of title of message box UINT uType          // style of message box ); 在uType参数中设置MB_SYSTEMMODAL就能让Mess

delphi中获取memo鼠标所在位置的行和列(通过EM_GETRECT消息取得Rect后,自己算一下)

也是看别人写的,但是不容易找到,就转发一篇delphi版本的 function GetLine(X, Y: integer): TPoint;var  OldFont : HFont;  Hand : THandle;  TM : TTextMetric;  Rect : TRect;begin  Hand := GetDC(mmotest.Handle);  try    OldFont := SelectObject(Hand, mmotest.Font.Handle);    try   

Javascript中的DOM实现显示鼠标的空间位置

为了显示鼠标相对于浏览器的位置(相对于屏幕和页面类似),我们能够利用click事件,获得关于鼠标单击的事件对象event.这个事件对象里的clientX和clientY包括了鼠标的位置信息,所以我突发奇想.那我可不能够通过DOM中的createElement创建一个标签元素用于在相应的鼠标位置显示当前的鼠标相对于浏览器的坐标呢? 这里我先利用Element中的createElement()方法,创建一个div的标签.为了让标签信息能显示在鼠标相应的位置处,利用div.style将相应的top.l

web前端开发中常用的尺寸和位置

我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SVG. 在web页面开发中,尺寸和位置分为屏幕的尺寸和位置,元素的尺寸和位置,还有一个是文档的尺寸和位置,不过文档的尺寸和位置是通过document.body获取的,也算是一个元素.还有鼠标的位置.所以尺寸和位置主要分为三类: 屏幕尺寸和位置 元素尺寸和位置 特殊的元素,文档的尺寸和位置 鼠标的位置(

随鼠标移动在状态栏实时显示地图坐标(转载)

任务描述    鼠标在地图上移动时,会产生一系列mousemove(鼠标移动)事件,我们可以在客户端通过javascript脚本捕捉到鼠标事件的坐标,这个坐标是基于浏览器窗口的屏幕坐标.如果要显示鼠标点所在的地图坐标,有两种方法:第一,不停地向服务器发送AJAX请求,在服务器端将屏幕坐标转换成地图坐标,然后返回客户端,显示在状态栏.这样的话会有一个问题,就是鼠标拖动的时候会一直不停地发送请求,极大地增加了服务器的负担.当然,我们可以通过设置时间间隔,比如半秒钟更新一次坐标,达到视觉效果与服务器负

MFC中如何在TreeCtrl控件中获取鼠标左键消息时的有效点击位置

MFC中,当在TreeCtrl控件中添加鼠标左键消息时,就意味着,凡是在该控件中点击左键后即会响应鼠标左键的消息,可有时我们只想记下有效的鼠标左键点击的事件,如图所示: 只想在CheckBox中点击鼠标左键时,将已选中的Item的句柄存入到链表中,那么如何只将有效的鼠标左键的消息存入链表中呢? 下面是响应鼠标左键消息时从所有鼠标左键消息都响应到只响应有效的左键消息的三个版本: 当响应鼠标左键的消息时,第一个版本: 获取鼠标的点击位置(注意:此时获取的是针对于当前屏幕的鼠标点击位置,所以需要将其转