如何获取鼠标在控件中位置.MFC和API都行 谢谢

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取鼠标在控件中位置.MFC和API都行 谢谢相关的知识,希望对你有一定的参考价值。

我是想得到它的坐标 ,我想做qq中 当您用鼠标放在头像上是则出现信息,但是不知道怎么将一个winfrom 的位置一直固定在另一个winfrom的旁边 大家帮帮忙……

参考技术A 重写你的控件. (派生类)
这里拿一个 按钮控件做比喻:
自己写一个按钮类(CBTN) 继承自CButton

响应OnMouseMove()消息

void CBTN::OnMouseMove(UINT nFlags, CPoint point)

// TODO: Add your message handler code here and/or call default
CRect rect;
GetWindowRect(&rect);
ScreenToClient(&rect);
if(rect.PtInRect(point))
MessageBox("鼠标位于按钮内!");

CButton::OnMouseMove(nFlags, point);
追问

我能看懂一些 我是个初学者 不好意思 对函数也是昨天自己在网上搜了搜 懂了一些 请问您有QQ吗?可以加我 教我一下吗 ?因为要结业了 我们的项目要比赛 我也有点小着急 ……不好意思啊……

追答

1939124823

参考技术B 响应mousemove吧,定义一个cpoint对象,把鼠标点赋给point追问

可以详细点吗 我是出学着 不好意思

追答

“当您用鼠标放在头像上是则出现信息”,具体的思路:你要把鼠标移到头像就显示信息,那么就要知道头像这块区域具体的坐标,然后响应mousemove,在函数里面,用if判断voidCBTN::OnMouseMove(UINT nFlags, CPoint point) 这里的Point是在头像区域的范围内吗,是的就用MessageBox("内容");显示就行了。

引用楼上的改下:
void CBTN::OnMouseMove(UINT nFlags, CPoint point)

// TODO: Add your message handler code here and/or call default
获取头像坐标就要你自己写了,具体的情况我不了解
if(point>rect。左上x && point左上y&&point<右下y)

MessageBox("鼠标位于按钮内!");

CButton::OnMouseMove(nFlags, point);

MFC的静态控件怎么响应鼠标事件呀。。要详细一点的。。我菜鸟,谢谢

就是静态控件。。图片之类的响应鼠标按下的事件,在没有控件的区域能响应,但静态控件上总是响应不了,不知道怎么处理

参考技术A 在你想要添加响应的类上,
右键添加消息处理Add windows Message Handle
选择windows事件 WM_LBUTTONDOWN
然后编辑函数追问

picture类上只有单击事件,没有鼠标按下事件。。。
菜鸟,抱歉

参考技术B Windows中通过光标来指示当前鼠标的位置,在Windows操作系统中预定义了几种光标,并在Windows.h头文件中加以定义;用户也可以自定义光标,自定义光标保存在扩展名为.cur的文件中:光标名 CURSOR 光标文件(.cur)
加载光标资源(常在定义窗口类时进行)
LoadCursor(hThisInst,lpszCursorname)
另外:
lParam包含了鼠标位置(低位包含鼠标位置的x坐标值,高位包含鼠标位置的y坐标)
wParam包含了指示各种虚键状态的值(如:WM_LBUTTONDOWN用户区内按下鼠标左键等消息)
例如下面的部分代码:
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) //窗口处理函数
HCURSOR hcursor;
static int x,y; //鼠标的坐标值
switch(message)

case WM_MOUSEMOVE: //事件,鼠标移动
x=LOWORD(lParam); //得到鼠标的x、y坐标值
y=HIWORD(lParam);
if(x>50&&x<150&&y>50&&y<150) //判断鼠标是否在目标区域
hcursor=LoadCursor(NULL,IDC_CROSS); //十字光标
SetCursor(hcursor);

……
case WM_LBUTTONDOWN: //事件,鼠标左键被按下
……


上面就是应用程序对鼠标的响应,但是不知道你提问的问题具体是指哪方面的响应,不知道我的回答能否让你满意。本回答被提问者采纳
参考技术C static text 那个控件嘛??还是??

以上是关于如何获取鼠标在控件中位置.MFC和API都行 谢谢的主要内容,如果未能解决你的问题,请参考以下文章

MFC中怎样判断鼠标位于按键上

关于MFC 在一个对话框内有两个控件,在其中一个控件内点击拖动到另一控件松开,然后交换控件的位置怎么实现?

MFC如何动态设置当前鼠标位置

MFC如何获取控件在对话框上的位置坐标

MFC如何知道光标在那个控件上 用哪个函数?谢谢

MFC编程的时候,改变鼠标光标样式