Heim >Computer-Tutorials >Computerwissen >Wie erhalte ich den Koordinatencode der mit der Maus gedrückten Position im Clientbereich eines Dialogfelds in MFC?
//Zeigen Sie die Koordinaten der Maus im Clientbereich in Echtzeit am Titel des Dialogfensters an
void CTestDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Fügen Sie hier Ihren Nachrichtenhandlercode hinzu und/oder rufen Sie den Standardwert auf
CString str;
str.Format("X:%d Y:%d", point.x, point.y); //Formatieren Sie die Mauskoordinatenpunktinformationen und speichern Sie sie in der CString-Variablen str
SetWindowText(str); //Programmfenster aktualisieren Steuertext bearbeiten
CDialog::OnMouseMove(nFlags, point);
}
//Beim Klicken mit der Maus werden die Koordinaten der Maus im Clientbereich angezeigt
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Fügen Sie hier Ihren Nachrichtenhandlercode hinzu und/oder rufen Sie den Standardwert auf
CString str;
str.Format("x = %d, y = %d", point.x, point.y);
AfxMessageBox(str,MB_ICONQUESTION);
CDialog::OnLButtonDown(nFlags, point);
}
Aus diesem Grund ist es von entscheidender Bedeutung, wie man die Koordinaten des Steuerelements im Dialogfeld erhält. Das folgende kleine Testprogramm wurde geschrieben, um die Punkte in den beiden Bildsteuerelementen mit geraden Linien zu verbinden. Das intuitivere sind die vier Ecken des Bildsteuerelements, sodass die Ecken der Steuerelemente im Programm verbunden sind. Platzieren Sie zunächst zwei Bildsteuerelemente derselben Größe nebeneinander im Dialogfeld, setzen Sie ihre Bezeichner auf IDC_LEFT bzw. IDC_RIGHT, fügen Sie dann zwei Bearbeitungsfelder hinzu, um die Größe der Bildsteuerelemente anzuzeigen, und fügen Sie diesen beiden Bearbeitungsfeldern entsprechende Daten hinzu . Mitglieder m_row und m_colume. Fügen Sie eine Schaltfläche hinzu, um die Punkte im Bildsteuerelement zu verbinden, und fügen Sie dieser Schaltfläche die Mitgliedsfunktion OnMatch() hinzu.
void CControlDlg::OnMatch(){// TODO: Fügen Sie hier Ihren Steuerbenachrichtigungs-Handlercode hinzu
CRect rectL,rectR;
So erhalten Sie die Koordinaten der Maus in der OnMouseMove-Nachrichtenverarbeitungsfunktion von MFC
{
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); // Koordinaten anzeigen, 800.300 hier ist die angezeigte Position, stellen Sie sie entsprechend der Situation ein
Das obige ist der detaillierte Inhalt vonWie erhalte ich den Koordinatencode der mit der Maus gedrückten Position im Clientbereich eines Dialogfelds in MFC?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!