WM_MOUEMOVE怎么显示鼠标当前位置

djh512 2009-11-29 04:15:33
如题,就是鼠标移动 就显现当前客户区的坐标
在学windows程序,不知道怎么写
请指教
...全文
272 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
djh512 2009-12-02
  • 打赏
  • 举报
回复
可以先获取客户区在获取鼠标坐标吧
danxuezx 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mmilmf 的回复:]
1.在MFC下只要添加WM_MOUSEMOVE消息就行啦,函数的声明和实现的框架部分会自动生成。
只要在OnMouseMove(UINT nFlags, CPoint point )函数下添加代码就行了,
这里的point就是当前鼠标的位置
2.在Windows程序下,在回调函数中添加case WM_MOUSEMOVE:

POINT pt;
case WM_MOUSEMOVE:
GetCursorPos(&pt);//获取鼠标的位置
sprintf(str,"%d,%d",pt.x,pt.y); //要添加 <stdio.h>  
::TextOut(hdc,100,200,str,3);
[/Quote]
这个才是正解,不过这里获得到得坐标是相当整个屏幕的。
zhangjie199011087 2009-12-01
  • 打赏
  • 举报
回复
TRACE("x = %d,y = %d",point.x,pointy);
显示鼠标当前位置到output窗口!
djh512 2009-12-01
  • 打赏
  • 举报
回复
再问下 我在MFC下
我的输出
pDC->TextOut(10,10,text); //这个是正常的
pDC->TextOut(point.x,point.y,text); //我想达到的效果 可是这个没有重绘既不覆盖以前的数据额
要在paint里面写么?
djh512 2009-11-30
  • 打赏
  • 举报
回复
额 貌似 我太菜鸟
hongya6088 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mmilmf 的回复:]
1.在MFC下只要添加WM_MOUSEMOVE消息就行啦,函数的声明和实现的框架部分会自动生成。
只要在OnMouseMove(UINT nFlags, CPoint point )函数下添加代码就行了,
这里的point就是当前鼠标的位置
2.在Windows程序下,在回调函数中添加case WM_MOUSEMOVE:

POINT pt;
case WM_MOUSEMOVE:
GetCursorPos(&pt);//获取鼠标的位置
sprintf(str,"%d,%d",pt.x,pt.y); //要添加 <stdio.h>
::TextOut(hdc,100,200,str,3);
[/Quote]
就是这样
zlhuuo5 2009-11-30
  • 打赏
  • 举报
回复
汗,这太简单了~连我都会~~
菜鸟二号 2009-11-30
  • 打赏
  • 举报
回复

WM_MOUSEMOVE:
POINT t;
t.x=LOWORD(wParam);
t.y=HIWORD(wParam);
//DO
break;
如果有错,请忽视之。
pady_pady 2009-11-30
  • 打赏
  • 举报
回复
消息中包含坐标的啊
xxfxiazai 2009-11-30
  • 打赏
  • 举报
回复
能用提示信息的方式显示吗. 就是鼠标移动到按钮上时冒出的提示信息
Huqing008 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 arong1234 的回复:]
如果在客户区写,如果是MFC,只要处理WM_MOUSEMOVE消息,在里面用
CDC * pDC = GetDC();
CString text;
text.Format("%dx%d", pt.x,pt.y);
pDC->TextOut(10,10,text);
ReleaseDC(pDC);
就可以
[/Quote]

同意!
leer168 2009-11-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 arong1234 的回复:]
要看你:1。在哪显示, 2。使用的底层技术是什么。方法差别很大的

[/Quote]

一般我用这个
mmilmf 2009-11-29
  • 打赏
  • 举报
回复
1.在MFC下只要添加WM_MOUSEMOVE消息就行啦,函数的声明和实现的框架部分会自动生成。
只要在OnMouseMove(UINT nFlags, CPoint point )函数下添加代码就行了,
这里的point就是当前鼠标的位置
2.在Windows程序下,在回调函数中添加case WM_MOUSEMOVE:

POINT pt;
case WM_MOUSEMOVE:
GetCursorPos(&pt);//获取鼠标的位置
sprintf(str,"%d,%d",pt.x,pt.y); //要添加<stdio.h>
::TextOut(hdc,100,200,str,3);
blackboycpp 2009-11-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wb117908406 的回复:]
afx_msg void OnMouseMove( UINT nFlags, CPoint point );
第二个参数就是点的坐标嘛,呵呵~~
[/Quote] 正解
wb_rock 2009-11-29
  • 打赏
  • 举报
回复
afx_msg void OnMouseMove( UINT nFlags, CPoint point );
第二个参数就是点的坐标嘛,呵呵~~
MoXiaoRab 2009-11-29
  • 打赏
  • 举报
回复
在哪里显示?状态栏?

不管在哪里显示,响应好WM_MOUSEMOVE即可
oyljerry 2009-11-29
  • 打赏
  • 举报
回复
响应WM_MOUSEMOVE消息,里面就可以获取坐标,还可以GetClientRect等获取坐标
arong1234 2009-11-29
  • 打赏
  • 举报
回复
如果在客户区写,如果是MFC,只要处理WM_MOUSEMOVE消息,在里面用
CDC * pDC = GetDC();
CString text;
text.Format("%dx%d", pt.x,pt.y);
pDC->TextOut(10,10,text);
ReleaseDC(pDC);
就可以
arong1234 2009-11-29
  • 打赏
  • 举报
回复
要看你:1。在哪显示, 2。使用的底层技术是什么。方法差别很大的

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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