ropars
Messages postés9Date d'inscriptionmardi 4 juillet 2006StatutMembreDernière intervention30 août 2006
-
15 août 2006 à 11:42
ropars
Messages postés9Date d'inscriptionmardi 4 juillet 2006StatutMembreDernière intervention30 août 2006
-
15 août 2006 à 16:15
Bonjour
Je voudrais coder un programme avec Dev-c++ qui, apres ouverture d'une fenetre, a chaque clic de la souris dessine sur la fenetre un point et unpetit rectangle l'entourant places aux coordonnees du point cliqué.voici mon code:
{
cout<<"PAINT x = "<<x<<" y = "<<y<<endl;//verification des coordonnees
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
SetPixel(hdc,x,y,RGB(0,0,0));
cout<<"TRACE CENTRE x = "<<x<<" y = "<<y<<endl;//verification trace
Rectangle(hdc,x-4,y-4,x+4,y+4);
cout<<"FIN TRACE x = "<<x<<" y = "<<y<<endl;//verification trace
EndPaint(hwnd,&ps);
return 0;
}
case WM_LBUTTONDOWN:
{
x=(int)LOWORD(lParam);
y=(int)HIWORD(lParam);
Sleep (500);
PostMessage(hwnd,WM_PAINT,wParam, lParam);
return 0;
}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
L'execution me donne la fenetre et 1/4 de rectangle aux coordonnees 0,0. Puis plus rien,comme s'il était impossible de redessiner sur la fenetre apres la premiere execution de WM_PAINT.Pourtant les points de controle que j'ai places donnent de bonx resultats.
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20124 15 août 2006 à 14:55
Salut,
Un message WM_PAINT ne s'envoie pas explicitement à une fenêtre. Il
faut utiliser la fonction InvalidateRect() pour invalider la zone à
redessiner, et UpdateWindow() pour forcer l'envois d'un WM_PAINT.
cs_Joky
Messages postés1787Date d'inscriptionlundi 22 novembre 2004StatutMembreDernière intervention31 janvier 20092 15 août 2006 à 14:03
iostream et compagnie ( cout... ) n'ont rien à faire dans un prog Win32
Si tu veux écrire du texte, utilise DrawText ou TextOut qui vont écrire sur un Device Context
ropars
Messages postés9Date d'inscriptionmardi 4 juillet 2006StatutMembreDernière intervention30 août 2006 15 août 2006 à 14:48
Reponse a Joky
Les cout qui figurent dans mon programme n'ont pas pour but d'ecrire dans la fenetre, mais d'obtenir une information sur le deroulement du programme. Ils seront retires lorsque ça marchera. Mon probleme est qu'un seul carre est dessine, alors que je cherche a un tracer un a chaque clic.