//在對話窗標題處即時顯示客戶區內滑鼠的座標
void CTestDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CString str;
str.Format("X:%d Y:%d", point.x, point.y); //格式化滑鼠座標點資訊並儲存到CString型變數str中
SetWindowText(str); //更新程式視窗Edit控製文字
CDialog::OnMouseMove(nFlags, point);
}
#//按一下滑鼠時,顯示滑鼠在客戶區內的座標
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CString str;
str.Format("x = %d, y = %d", point.x, point.y);
AfxMessageBox(str,MB_ICONQUESTION);
CDialog::OnLButtonDown(nFlags, point);
}
#要實現這樣的效果需要知道相似位置在這兩幅圖中的座標以及這兩個控制項在對話方塊上的座標,然後透過加減運算就可以得到影像上的相似區域在對話方塊的座標,直接將這兩個座標用直線連接就可以了。
為此,如何取得控制項在對話方塊上的座標是關鍵問題。編寫瞭如下的測試小程序,目的是將兩個picture控件中的點用直線連接起來,比較直觀的是picture控件的四個角,所以程序中是將控件的拐角連接起來。首先在對話框上並排放置兩個同樣大小的picture控件,將他們的標識分別設為IDC_LEFT和IDC_RIGHT,然後添加兩個編輯框用於顯示picture控件的大小,給這兩個編輯框添加相應的數據成員m_row和m_colume。新增一個按鈕用於連接picture控制項中的點,為這個按鈕新增成員函數OnMatch() 。
void CControlDlg::OnMatch(){// TODO: Add your control notification handler code here
CRect rectL,rectR;
void CQiHuoView::OnMouseMove(UINT nFlags, CPoint point)//滑鼠移動
{
CClientDC dc(this);
CPen dashpen(PS_SOLID,1,RGB(255,255,255));
dc.SetBkMode(TRANSPARENT);
dc.SelectObject(&dashpen);
int x=0,y=0;
x = point.x;
y = point.y;
CString a;a.Format(_T("%d, %d"),x,y);
dc.SetTextColor(RGB(255,0,0));
dc.TextOut(800,310,a);//顯示座標,這裡的800,300是顯示的位置,依照情況自行設定
以上是如何在MFC中取得對話方塊客戶區滑鼠按下位置的座標代碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!