Pinceau, crayon et économie.

Résolu
Signaler
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
-
Bonsoir.

Voila je dois dessiner dans une fenetre windows j'ai donc besoin d'un pinceau et d'un crayon. Le problème c'est qu'ils peuvent prendre une quasi centaine de couleurs différentes. Du coup je ne pense pas envisageable de tous les créer et je pensais plutot à changer la couleur en fonction des besoins (cela demanderais moins de mémoire, qui sera déja bien prise).

Pour le moment je recréais le pinceau et le crayon à chaque fois que j'en ai besoin mais je pense pas que cela soit très performant (je change très souvent de pinceau donc je cherche aussi la rapidité en plus du peu de place).
Je pense donc que le plus efficace est de juste changer la couleur de mes outils mais je n'y arrive pas... comment faire s'il vous plait.

Merci d'avance.

<hr width="100%" size="2" />
Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.

6 réponses

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
SetDCPenColor, SetDCBrushColor

_____________________________________
Un éditeur de ressources gratuit pour Windows
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

Caster un pointeur en HDC, c'est pas forcement une bonne idée.

Essaye avec dc->SelectStockObject(DC_BRUSH);

et n'hésite pas a regarder la doc des mfc sur msdn, c'est super bien fait.
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
9
Merci mais voilà le code :

CBrush lPinceau(RGB(255,255,255));
dc->SelectObject(lPinceau);
dc->SetDCBrushColor(RGB(255,255,0));

dc->Rectangle(3,10,10,10);

et avec ce code la j'ai quand même un pinceau blanc, je pense bien utiliser la fonction SetDCBrushColor mais après faut il "actualiser" le device context ou faire quelque chose?

Merci.





<hr width="100%" size="2" />
Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
3
Salut,

SetDCBrushColor ça te permet de changer la couleur du pen, mais il faut
toujours selectionner le bon pen dans ton DC avant de pouvoir
l'utiliser:

SelectObject(hDC, GetStockObject(DC_BRUSH));

à adapter pour que ca marche avec les MFC.
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
9
voila mon dernier essai :

    CBrush lPinceau(RGB(0,0,0))
     dc->SelectObject(lPinceau);
    SelectObject((HDC)dc, GetStockObject(DC_BRUSH));
    dc->SetDCBrushColor(RGB(255,255,255));

mais même avec ce code tout est peint en noir... d'où vient le soucis?
merci.

<hr size="2" width="100%" />Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.
Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
9
Merci ça marche bien comme ça. Donc je récapitule :

    CBrush lPinceau(RGB(0,0,0))
     dc->SelectObject(lPinceau);
    dc->SelectStockObject(DC_BRUSH);
    dc->SetDCBrushColor(RGB(255,255,255));

Merci encore.

<hr width="100%" size="2" />
Quand la merde vaudra de l'or les pauvres naitront sans trou du cul. Coluche.