实现在Picture控件中获取鼠标位置(OnMouseMove)

65 篇文章 2 订阅

原文链接:http://blog.csdn.net/fairypwq/article/details/7473344


在新建MFC工程中加入消息映射,如下:(红色部分为添加)

BEGIN_MESSAGE_MAP(CMymfcDlg, CDialogEx)
 ON_WM_SYSCOMMAND()
 ON_WM_PAINT()
 ON_WM_MOUSEMOVE()
 ON_WM_LBUTTONDOWN()
 ON_WM_QUERYDRAGICON()
 ON_BN_CLICKED(IDC_ReadImg, &CMymfcDlg::OnBnClickedReadImg)
 ON_BN_CLICKED(IDC_OpenCam, &CMymfcDlg::OnBnClickedOpenCam)
END_MESSAGE_MAP()

在xxDlg.cpp中添加

void CMymfcDlg::OnMouseMove(UINT nFlags, CPoint point)
{
 ClientToScreen(&point);//将鼠标坐标转换成屏幕坐标
 CRect rect;//定义一个矩形框,包含左上角和右下角可访问成员
 GetDlgItem(IDC_ShowImg)->GetClientRect(rect);//获取Picture控件的位置信息,存入rect中
 GetDlgItem(IDC_ShowImg)->ClientToScreen(rect);//转换成屏幕坐标
 if (rect.PtInRect(point))//判断point是否在rect内部
  AfxMessageBox("1");

 //CDialog::OnMouseMove(nFlags, point);
}
void CMymfcDlg::OnLButtonDown(UINT nFlags, CPoint point) //鼠标按下
 {
 ClientToScreen(&point);//将鼠标坐标转换成屏幕坐标
 CRect rect;//定义一个矩形框,包含左上角和右下角可访问成员
 GetDlgItem(IDC_ShowImg)->GetClientRect(rect);//获取Picture控件的位置信息,存入rect中
 GetDlgItem(IDC_ShowImg)->ClientToScreen(rect);//转换成屏幕坐标
 if (rect.PtInRect(point))//判断point是否在rect内部
   {
    AfxMessageBox("Haibara Ai");            //鼠标一按下就会送出消息(以对话框形式)
  //m_ptOrigin=m_ptOld=point;            //将当前鼠标按下的位置用m_ptOrigin记录
  //m_bDraw=TRUE;                        //将鼠标按下标志置为TURE
 }
  // CMymfcDlg::OnLButtonDown(nFlags, point); //函数自调用,循环检测。nFlags 表示控制键状态
 
                                        //(包括 ctrl,shift,鼠标左、中、右共5个键的状态)
                                         //point表示鼠标坐标。(相对于当前窗口而言的坐标)
 
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值