Choix de la couleur d un boutton a partir de la boite de couleur sous win32 api

Signaler
Messages postés
20
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
23 novembre 2007
-
Messages postés
16
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
15 mars 2013
-
salut a tous,

Cela fait juste une semaine que je me bas a pouvoir programmer des applications windows.

j aimerai bien sous win32 api avec vc++ 6.0 programmer une boite de dialogue. Ainsi lors de l execution du programme , il sera affiché la boite de dialogue avec different sorte de couleur du genre "Choose Color Dialog Box" et l utilisateur pourra, choisir une couleur et des qu il cliquera sur le boutton du ok de cette petiite boite de dioalogue la ou il a choisi la couleur un boutton qui a été crée dans la boite de dialogue principale prendra cette couleur qui fut choisie.

Voici le source que j utilise pour crée, la boite qui s afiche avec les differentes sortes de couleur proposé comme choix.

CHOOSECOLOR cc; // common dialog box structure
static COLORREF acrCustClr[16]; // array of custom colors
HWND hwnd; // owner window
HBRUSH hbrush; // brush handle
static DWORD rgbCurrent; // initial color selection

// Initialize CHOOSECOLOR
ZeroMemory(&cc, sizeof(cc));
cc.lStructSize = sizeof(cc);
cc.hwndOwner = hwnd;
cc.lpCustColors = (LPDWORD) acrCustClr;
cc.rgbResult = rgbCurrent;
cc.Flags = CC_FULLOPEN | CC_RGBINIT;

if (ChooseColor(&cc)==TRUE) {
hbrush = CreateSolidBrush(cc.rgbResult);
rgbCurrent = cc.rgbResult;
}

Espérant que j ai bien expliqué mon probleme, vous remercie dZavance pour toutes formes d aidées et idées.

Merci bien
:)
Armando

4 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
tout ça m'a l'air correct, il ne te reste plus cas traiter le message WM_CTLCOLORBTN dans ta DlgProc et de retourner le HBRUSH créé :

case WM_CTLCOLORBTN :
{
if(GetDlgCtrlID((HWND)lParam) == ID_BUTTON)
return (LONG) hbrush;
else
return DefWindowProc(hDlg, WM_CTLCOLORBTN, wParam, lParam);
}
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
sur que ce message n'est trité que pour les bouton owner-drawn et donc ca va etre plus compliqué que pour un static ou un edit
Messages postés
20
Date d'inscription
lundi 9 février 2004
Statut
Membre
Dernière intervention
23 novembre 2007

ca c est vrai pour un bouton owner-draw.là tu as raison et c est du tout simple.

Merci bien

Armando
Messages postés
16
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
15 mars 2013

Bonjour,
je voudrais modifier les proprietes de controle statique en particulier le contour si c'est possible.
Je voudrais grossir le contour et lui changer la couleur.
Je voudrais aussi savoir comment changé la couleur du texte et la couleur du fond.
Je voudrais connaitre les différents codes héxadécimaux ou équivalent des differentes couleurs.
Merci d'avance à tous ceux qui me répondront.
Bonne prog à tous .