vc 鼠标位置捕捉(新手上路)

来源:百度知道 编辑:UC知道 时间:2024/09/26 16:23:44
void CSendMsgDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
//判断鼠标是否在IDC_CAP上,如果是,则设置捕捉鼠标
// if(point.x>=m_rtCtrl.left&&point.x<=m_rtCtrl.right||point.y>=m_rtCtrl.top&&point.y<=m_rtCtrl.bottom)
if(point.y>=m_rtCtrl.top&&point.y<=m_rtCtrl.bottom)
{
m_bCapturing=TRUE;
SetCapture();
SetCursor(m_hCursor);
}

CDialog::OnLButtonDown(nFlags, point);
}
大家好,根据程序的意思,当鼠标在图标(ID_CAP)上点击时被捕捉,然而,经过测试,鼠标在图标的下方点击时才被捕捉,这是为什么哪,是不是坐标不匹配啊,请问这如何解决。谢谢 ,先!!

必须获得窗口客户区与整个窗口的宽度和高度比例关系,然后实时获取鼠标位置,把鼠标位置转换成客户区位置,再做判断。不然就出现你那个情况,我有一份代码,要的话可以看看。问题是,5分,嘿嘿少点~
你可别是C啊~C的话完全白搭了我的是C++些的

不是这样的,,计算机屏幕的坐标原点在左上角,从左到右X轴增大
从上到下Y轴增大,,所以底下就是BOTTOM,上面是TOP,当然要>TOP ,<BOTTOM才可以了.明白?

CRect::PtInRect
BOOL PtInRect( POINT point ) const;

为什么不要这个函数哦