MFC 獲取picture控件的鼠標點擊座標位置的方法

     在一個自定義的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;

}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章