bonjour
voila je dessine des lignes avec MoveTo() et LineTo(), je voudrais savoir comment on peut changer la couleur du crayon?
merci
Version imprimable
bonjour
voila je dessine des lignes avec MoveTo() et LineTo(), je voudrais savoir comment on peut changer la couleur du crayon?
merci
salut,
en créant un objet CPen
exemple:
m_colorCenter correspond a ma couleur de trait ...Code:
1
2
3
4
5
6
7
8 CPen pen(PS_SOLID, 0, m_colorCenter); CPen * pOldPen = (CPen *) pDC->SelectObject(& pen); pDC->MoveTo(pCenter.x - m_CenterSize, pCenter.y); /........... if (pOldPen) pDC->SelectObject(pOldPen);
:D
et si au lieu de m_colorCenter je veux du rouge ...
:oops: je suis débutante....
oki :D ,Citation:
Envoyé par meli0207
les couleurs de base :
dans ton cas RGB(128,0 ,0)Citation:
Black (0 ,0 ,0); // 0
Blue (0 ,0 ,128);// 1
Green (0 ,128,0); // 2
Cyan (0 ,128,128);// 3
Red (128,0 ,0); // 4
Violet (128,0 ,128);// 5
Olive (128,128,0); // 6
LtGray (192,192,192);// 7
Gray (128,128,128);// 8
LtBlue (0 ,0 ,255);// 09
LtGreen (0 ,255,0); // 10
LtCyan (0 ,255,255);// 11
LtRed (255,0 ,0); // 12
LtMagenta(255,0 ,255);// 13
LtYellow (255,255,0); // 14
White (255,255,255);// 15
:D
je comprends pas ca marche pas... ca trace bien le truc mais pas en rouge ...
Code:
1
2
3
4
5
6
7
8
9
10
11
12 CPen pen(PS_SOLID, 0, RGB(128,0 ,0) ); CPen * pOldPen = (CPen *) SelectObject(theApp.hdc, &pen); MoveToEx(theApp.hdc, ppp.x, ppp.y,(LPPOINT) NULL); while (theApp.f->getDeplacement(direction, distance)) { AugmentePoint(ppp, direction, distance); LineTo(theApp.hdc, ppp.x, ppp.y); } if (pOldPen) SelectObject(theApp.hdc,pOldPen);
ben soit tu travailles en win32 soit tu travailles en MFC mais pas les deux sinon faut faire attention aux conversions entre objets et Handle .
la ton code c'est du win32 .
cast le CPen avec (HPEN) dans le selectobject ..
ou regarde dans MSDN comment creer un HPEN.
:D
??? euh... du win32? je modifie comment pour que ca soit MFC ?
et bien tu regardes la classe CDC sur MSDN
qui englobe un HDC
et qui permet de faire comme dans mon premier post ,regarde la difference avec le tiens .
:D
oui mais en faisant comme ca :
ca ne trace plus rien du tout...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 CPaintDC dc(this); CPen pen(PS_SOLID, 0, RGB(128,0 ,0) ); CPen * pOldPen = (CPen *) dc.SelectObject( &pen); dc.MoveTo(ppp.x, ppp.y); while (theApp.f->getDeplacement(direction, distance)) { AugmentePoint(ppp, direction, distance); dc.LineTo(ppp.x, ppp.y); } if (pOldPen) dc.SelectObject(pOldPen);
quel est le contexte de ce code ?
ou est il situé (ondraw onpaint etc ...) ?
sinon remplace ton CPaintDC par CClientDC dc(this);
:D
merci beaucoup!!! ca marche!