Heim  >  Artikel  >  Computer-Tutorials  >  Wie erhalte ich den Koordinatencode der mit der Maus gedrückten Position im Clientbereich eines Dialogfelds in MFC?

Wie erhalte ich den Koordinatencode der mit der Maus gedrückten Position im Clientbereich eines Dialogfelds in MFC?

WBOY
WBOYnach vorne
2024-01-24 20:48:051046Durchsuche

So erhalten Sie den spezifischen Code der Koordinaten der Mausklickposition im Clientbereich des 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);

}

Wie erhalte ich den Koordinatencode der mit der Maus gedrückten Position im Clientbereich eines Dialogfelds in MFC?

//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);

}

Wie erhalte ich den Koordinatencode der mit der Maus gedrückten Position im Clientbereich eines Dialogfelds in MFC?

Wie erhält MFC die Positionskoordinaten des Steuerelements im Dialogfeld? Um diesen Effekt zu erzielen, müssen Sie die Koordinaten der ähnlichen Positionen in den beiden Bildern und die Koordinaten der beiden Steuerelemente im Dialogfeld kennen. Anschließend können Sie durch Additions- und Subtraktionsoperationen die Koordinaten der ähnlichen Bereiche auf dem erhalten Bild im Dialogfeld direkt. Verbinden Sie einfach diese beiden Koordinaten mit einer geraden Linie.

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

void CQiHuoView::OnMouseMove(UINT nFlags, CPoint point)//Mausbewegung

{

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen