En fait j'aimerais tracer une ligne dans ma fenêtre que j'ai créer
comme ceci :
HWND fenetre1 = CreateWindowEx(WS_EX_STATICEDGE,
"STATIC",NULL,WS_CHILD ,235, 130, 530, 365, fenetrePrincipale,
NULL,GetModuleHandle(NULL), NULL);
A l'aide de la fonction :
void dessineLigne (HWND fenetreCiblee, const RECT dimensions, HPEN
crayon)
{
//Déclarations préalables + récupération de la surface de
dessin
PAINTSTRUCT ps;
HDC dc = BeginPaint(fenetreCiblee, &ps);
//Application du crayon sur le dc
SelectObject(dc, crayon);
//Dessin de la ligne
MoveToEx(dc, dimensions.left, dimensions.top, NULL);
LineTo(dc, dimensions.right, dimensions.bottom);
//Libération de la surface + fin du dessin
EndPaint(fenetreCiblee, &ps);
return;
}
Je l'appelle donc comme ceci :
RECT dimensions;
dimensions.left = 0;
dimensions.right = 50;
dimensions.top = 0;
dimensions.bottom = 50;
dessineLigne (fenetre1, dimensions, NULL);
Cependant rien ne s'affiche dans ma fenêtré pouvez vous m'indiquer
l'erreur que j'ai fait et m'aider a la résoudre
merci
> Cependant rien ne s'affiche dans ma fenêtré pouvez vous m'indiquer
> l'erreur que j'ai fait et m'aider a la résoudre
Il faut toujours dessiner dans WM_PAINT.
Si c'est dans un Static control, il faut le subclasser.
BeginPaint s'emploie uniquement en r�ponse � WM_PAINT. Pour afficher � un
autre moment que sur un event WM_PAINT il faut tout simplement obtenir une
dc :
void dessineLigne (HWND fenetreCiblee, const RECT dimensions, HPEN
crayon)
{
//D�clarations pr�alables + r�cup�ration de la surface de
dessin
PAINTSTRUCT ps;
HDC dc = GetDC(fenetreCiblee);
//Application du crayon sur le dc
SelectObject(dc, crayon);
//Dessin de la ligne
MoveToEx(dc, dimensions.left, dimensions.top, NULL);
LineTo(dc, dimensions.right, dimensions.bottom);
//Lib�ration de la surface + fin du dessin
ReleaseDC(fenetreCiblee, dc);
return;
}