Home > Article > Computer Tutorials > How to get the coordinate code of the mouse-pressed position in the client area of a dialog box in MFC?
//Display the coordinates of the mouse in the client area in real time at the title of the dialog window
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); //Format the mouse coordinate point information and save it to the CString type variable str
SetWindowText(str); //Update program window Edit control text
CDialog::OnMouseMove(nFlags, point);
}
//When the mouse is clicked, the coordinates of the mouse in the client area are displayed
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);
}
To achieve this effect, you need to know the coordinates of the similar positions in the two pictures and the coordinates of the two controls on the dialog box. Then through addition and subtraction operations, you can get the coordinates of the similar areas on the image in the dialog box. , just connect these two coordinates with a straight line.
To this end, how to obtain the coordinates of the control on the dialog box is the key issue. The following small test program is written to connect the points in the two picture controls with straight lines. The more intuitive one is the four corners of the picture control, so the corners of the controls are connected in the program. First, place two picture controls of the same size side by side on the dialog box, set their identifiers to IDC_LEFT and IDC_RIGHT respectively, then add two edit boxes to display the size of the picture controls, and add corresponding data to these two edit boxes. Members m_row and m_colume. Add a button to connect the points in the picture control, and add the member function OnMatch() for this button.
void CControlDlg::OnMatch(){// TODO: Add your control notification handler code here
CRect rectL,rectR;
void CQiHuoView::OnMouseMove(UINT nFlags, CPoint point)//mouse movement
{
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); //Display coordinates, 800,300 here is the displayed position, set it according to the situation
The above is the detailed content of How to get the coordinate code of the mouse-pressed position in the client area of a dialog box in MFC?. For more information, please follow other related articles on the PHP Chinese website!