Maison  >  Article  >  tutoriels informatiques  >  Comment obtenir le code de coordonnées de la position enfoncée par la souris dans la zone client d'une boîte de dialogue dans MFC ?

Comment obtenir le code de coordonnées de la position enfoncée par la souris dans la zone client d'une boîte de dialogue dans MFC ?

WBOY
WBOYavant
2024-01-24 20:48:051119parcourir

Comment obtenir le code spécifique des coordonnées de la position du clic de souris dans la zone client de la boîte de dialogue dans MFC

//Afficher les coordonnées de la souris dans l'espace client en temps réel au titre de la fenêtre de dialogue

void CTestDlg ::OnMouseMove (UINT nFlags, point CPoint)

{

// À FAIRE : Ajoutez votre code de gestionnaire de messages ici et/ou appelez default

CString str;

str.Format("X:%d Y:%d", point.x, point.y); //Formate les informations du point de coordonnées de la souris et enregistre-les dans la variable CString str

SetWindowText(str); //Mettre à jour la fenêtre du programme Modifier le texte du contrôle

CDialog::OnMouseMove(nFlags, point);

}

Comment obtenir le code de coordonnées de la position enfoncée par la souris dans la zone client dune boîte de dialogue dans MFC ?

//Lorsque l'on clique avec la souris, les coordonnées de la souris dans l'espace client s'affichent

void CTestDlg ::OnLButtonDown (UINT nFlags, point CPoint)

{

// À FAIRE : Ajoutez votre code de gestionnaire de messages ici et/ou appelez default

CString str;

str.Format("x = %d, y = %d", point.x, point.y);

AfxMessageBox(str,MB_ICONQUESTION);

CDialog::OnLButtonDown(nFlags, point);

}

Comment obtenir le code de coordonnées de la position enfoncée par la souris dans la zone client dune boîte de dialogue dans MFC ?

Comment MFC obtient-il les coordonnées de position du contrôle dans la boîte de dialogue

Pour obtenir cet effet, vous devez connaître les coordonnées des positions similaires dans les deux images et les coordonnées des deux contrôles sur la boîte de dialogue. Ensuite, grâce aux opérations d'addition et de soustraction, vous pouvez obtenir les coordonnées des zones similaires sur la boîte de dialogue. image dans la boîte de dialogue, directement Connectez simplement ces deux coordonnées avec une ligne droite.

Pour cette raison, la question clé est de savoir comment obtenir les coordonnées du contrôle dans la boîte de dialogue. Le petit programme de test suivant est écrit pour relier les points des deux contrôles d'image avec des lignes droites. Le plus intuitif est celui des quatre coins du contrôle d'image, de sorte que les coins des contrôles sont connectés dans le programme. Tout d'abord, placez deux contrôles image de même taille côte à côte dans la boîte de dialogue, définissez respectivement leurs identités sur IDC_LEFT et IDC_RIGHT, puis ajoutez deux zones d'édition pour afficher la taille des contrôles image et ajoutez les données correspondantes à ces deux zones d'édition. . Membres m_row et m_colume. Ajoutez un bouton pour connecter les points dans le contrôle image et ajoutez la fonction membre OnMatch() pour ce bouton.

void CControlDlg::OnMatch(){// TODO : Ajoutez votre code de gestionnaire de notification de contrôle ici

CRect rectL,rectR;

Comment obtenir les coordonnées de la souris dans la fonction de traitement de message OnMouseMove de MFC

void CQiHuoView ::OnMouseMove(UINT nFlags, CPoint point)//mouvement de la souris

{

CClientDC dc(this);

Tableau de bord CPen(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); //Afficher les coordonnées, 800,300 voici la position affichée, réglez-la en fonction de la situation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer