MFC 获取picture控件的鼠标点击坐标位置的方法(PreTranslateMessag)

    在一个自定义的Dialog中加入了picture控件,想要获取鼠标在该控件上的点击位置,遇到一些困难,最终解决了。方法如下:

     其实挺简单的,首先用自定义的Dialog类重载CDialog的PreTranslateMessage函数,并在其中用到了Dialog的OnLButtonDown函数(其实不用也行,我只是想把操作封在这个函数里)这样就可以通过此函数传递点击位置。

BOOL PrintDialog::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class


if(pMsg->message == WM_LBUTTONDOWN && GetDlgItem(IDC_PACKPIC)->GetSafeHwnd() == pMsg->hwnd)

   OnLButtonDown(MK_LBUTTON, pMsg->pt);   //在此传递点击部位在对话框中的坐标


return CDialog::PreTranslateMessage(pMsg);
}


接下来在Dialog中的OnLButtonDown函数中判段是否点在picture控件内(lRect是控件的区域)

if((point.x>=lRect.left && point.x<=lRect.right) && (point.y>=lRect.top && point.y<=lRect.bottom))
{

               //  通过对point的处理,获得实际在picture控件中的点击位置(坐标),完成。


point.x-=lRect.left;

point.y-=lRect.top;

}

阅读更多
换一批

没有更多推荐了,返回首页