Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Probleme tracer ligne [Api Windows]

1 view
Skip to first unread message

Fender6

unread,
Nov 28, 2009, 10:35:42 AM11/28/09
to
Salut,

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

Christian ASTOR

unread,
Nov 28, 2009, 10:57:27 AM11/28/09
to
On 28 nov, 16:35, Fender6 <grignottel...@orange.fr> wrote:

> 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.

Vincent Burel

unread,
Nov 29, 2009, 2:01:31 PM11/29/09
to

>"Fender6" <grigno...@orange.fr> wrote in message
news:cc4ee2c7-6386-4410...@f16g2000yqm.googlegroups.com...
>Salut,
>
>En fait j'aimerais tracer une ligne dans ma fen�tre que j'ai cr�er
>comme ceci :
>
>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

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;
}


0 new messages