GreatNeo
Messages postés13Date d'inscriptionmercredi 18 décembre 2002StatutMembreDernière intervention23 avril 2007
-
20 mars 2003 à 20:28
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 2006
-
20 mars 2003 à 22:05
voila le problème,
je suis sous vc++ en win32. je crée un timer avec un intervalle donné et à chaque WM_TIMER j'appelle la fonction suivante:
void dessine(int x){
hdc = BeginPaint(hwnd,&ps);
SelectObject(hdc, CreatePen(PS_SOLID, 1, RGB(255, 0, 0)));
MoveToEx(hdc, x, 0, NULL);
LineTo(hdc, x, 500);
EndPaint(hwnd,&ps);
}
Elle est censée me dessiner une ligne mais rien n'apparait dans la fenêtre, pourtant j'ai vérifier et la fonction est appelé correctement. Si quelqu'un sait donc çà vient, merci d'avance ...
cs_Kaid
Messages postés949Date d'inscriptionmardi 2 octobre 2001StatutMembreDernière intervention 8 juillet 20061 20 mars 2003 à 21:52
A première vue ton code devrait fonctionner, attention tout de même à l'allocation/désallocation des objets GDI. Le code si dessous libére le "stylo" qui tu crées:
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 20 mars 2003 à 22:02
hdc = BeginPaint(hwnd,&ps);
INVALIDE hors de du message WM_PAINT, il faut placer ton code dedans ou refaire ta func.
hdc = GetDC(hwnd);
mais preferer la 1ere solution, tu prepares les params et ton timer fait InvalidateRect(...). Ainsi fonctionnera.
BruNews, ciao...