obtenir le point de clickage? [VC++] - Programmation
Marsh Posté le 24-03-2002 à 16:51:14
Tu connais les évenements et la prog graphique sous windows ?
Marsh Posté le 24-03-2002 à 17:00:29
la fonction que je fais n'est pas dans le wizard c'est malin ca!!! sinon je l'aurai fait
Marsh Posté le 24-03-2002 à 17:03:00
tu choppes les evenements WM_MOUSEMOVE et
LOWORD(lParam), HIWORD(lParam) donne la position en coordonnées du client.
Sinon le wizard peut le faire à ta place.
[jfdsdjhfuetppo]--Message édité par Tetragrammaton IHVH--[/jfdsdjhfuetppo]
Marsh Posté le 24-03-2002 à 17:28:07
desole mais j'arrive vraiment pas
en fait je fais une fonction qui n'est pas declenche avec un evenement de le souris mais dans le code de celle ci j'ai besoin de savoir ou est la souris justement
Marsh Posté le 24-03-2002 à 17:31:29
Slash- a écrit a écrit : desole mais j'arrive vraiment pas en fait je fais une fonction qui n'est pas declenche avec un evenement de le souris mais dans le code de celle ci j'ai besoin de savoir ou est la souris justement |
???????????
WM_MOUSEMOVE est appelé du moment où la souris bouge.
Je ne vois pas ce qu'il te faut de plus...
Marsh Posté le 24-03-2002 à 17:37:57
sisi d'accord mais bon... a mon avis j'ai du mal a m'exprimer
bon voici la fonction en question
void CCoursView::OnMenuFlottant(UINT nID)
{
m_bmpEtudiant.DeleteObject(); vec[0][0].occupe = 0;
::InvalidateRect(this->m_hWnd,vec[0][0].rect,TRUE);
m_bmpEtudiant.DeleteObject(); vec[5][4].occupe = 0;
::InvalidateRect(this->m_hWnd,vec[5][4].rect,TRUE);
}
bon j'explique, je fais apparaitre un menu flottant, le menu n'a qu'un seul choix (d'ou le fait de ne pas avoir de switch case dans la fonction du dessus), et cette fonction ne doit faire que les 2 premieres lignes ou les 2 dernieres lignes suivant ou se trouve le point de cliquage et c'est la que je bloque... je comprends pas comment faire.... si je prends le wizard et que je choisi WM_MOUSEMOVE ou WM_LBUTTONDOWN, ca me cree une nouvelle fonction et ca ne m'interesse pas... svp aidez moi chuis vraiment dans la m***
Marsh Posté le 24-03-2002 à 17:46:27
Slash- a écrit a écrit : sisi d'accord mais bon... a mon avis j'ai du mal a m'exprimer |
Euh tu veux faire quoi, je comprends rien ? Ton but, c'est bien réagir à un clic souris, non ?
Si c'est le cas alors tu dois intercepter WM_LBUTTONDOWN.
Si tu veux faire ça d'une autre manière, je te conseille de lire des docs sur la façon de programmer les GUI.
Marsh Posté le 24-03-2002 à 17:55:37
bon je vais poser ma question autrement alors
imaginez que j'ai 2 fonctions differentes a programmer qui demande toutes les 2 de connaitre le point de clickage
comment je fais pour donner le message WM_LBUTTONDOWN aux 2 fonctions?
plus clair ainsi ou toujours pas ?
Marsh Posté le 24-03-2002 à 18:03:30
Slash- a écrit a écrit : bon je vais poser ma question autrement alors imaginez que j'ai 2 fonctions differentes a programmer qui demande toutes les 2 de connaitre le point de clickage comment je fais pour donner le message WM_LBUTTONDOWN aux 2 fonctions? plus clair ainsi ou toujours pas ? |
Si c'est très clair : tu n'as pas compris le principe de la programmation evenementielle. Il y a UNE seule fonction qui a à répondre au message WM_LBUTTONDOWN, ensuite, en fonction du contexte (flag d'état etc...) tu agis différemment (tu appelles une de tes 2 fonctions sus-nommées)
Si les comportements sont très différents selon les elements présents dans la fenêtre, tu fais plusieurs classes pour chaque contrôle/child window qui dérivent de CWnd et qui interceptent séparemment le WM_LBUTTONDOWN, etc...
[jfdsdjhfuetppo]--Message édité par Tetragrammaton IHVH--[/jfdsdjhfuetppo]
Marsh Posté le 24-03-2002 à 16:36:19
Salut,
en visual c++ quand on cree une fonction soi meme (pas par le wizard), comment faire pour passer comme parametre a cette fonction le point de clickage dans la fenetre (var de type CPoint)?
merci