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

如何获取鼠标在控件中位置.MFC和API都行.111111111111,第1张

1: CPoint pt;

2: GetCursorPos(&pt); //得到位置

>

参考一下

point

是相对CLYHchxuView的坐标

如果你要获的是相对CLYHchxuView左上角的坐标

就不需要转换

如果你你要获的是相对程序主窗口左上角的坐标

可以这样算

void CLYHchxuView::OnLButtonDblClk(UINT nFlags, CPoint point)

{

// TODO: Add your message handler code here and/or call default

CRect rc;

GetParent()->GetWindowRect(&rc);

ClientToScreen(&point);

docx=pointx-rcleft;

docy=pointy-rctop;

Invalidate();

CView::OnLButtonDblClk(nFlags, point);

}

使用GetCursorPos()函数

假设是用pciture控件显示。

那么可以先改变控件的ID,然后定义一个CSTATIC 类型的变量如m_ctrlPic。

先得到当前鼠标坐标:

CPoint point;

GetCursorPos( &point );

然后得到picture控件rect。

CRect rect;

::GetClientRect(m_ctrlPicGetSafeHwnd(), &rect);

然后把当前鼠标坐标转为相对于rect的坐标。

::ScreenToClient(m_ctrlPicGetSafeHwnd(), &point);

然后判断该点坐标是否在rect内,在就显示

if(rectPtInRect(point))

{

CString strPos;

strPosFormat("%d:%d", pointx, pointy);

AfxMessageBox(strPos);

}

}

对话框坐标可以使用GetWindowRect获取。

鼠标坐标一般在OnMouseMove里面通过参数获取。

这个最好有具体需求描述,因为获取方式很多,用于不同的窗口和不同的需要。

方法一:在OnMouseMove方法最前面加上局部刷新的代码:

RECT rect; //刷新区域

rectleft=800; //区域最左端

recttop=300;//区域最顶端

rectright=rectleft+100;//宽

rectbottom=recttop+30;//高

InvalidateRect(&rect);

UpdateWindow();

方法二:在文字输出(TextOut一句)前先把该区域用背景色刷一遍,用FillRect函数,即类似于dcFillRect(rect,brush);

以上就是关于如何获取鼠标在控件中位置.MFC和API都行.111111111111全部的内容,包括:如何获取鼠标在控件中位置.MFC和API都行.111111111111、mfc单击鼠标左键获得当前鼠标的坐标、急!!!MFC中如何获取鼠标相对坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9835790.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存