Boujour,
je désire créer, un bouton avec les styles : BS_CHECKBOX et BS_PUSHLIKE et je désire qu'en fonction de l'état de se bouton il s'affiche de couleur différente.
si le bouton est créer de cette façon :
CreateWindowEx(0,"BUTTON",nom_boutton,
BS_CHECKBOX | BS_PUSHLIKE
| WS_CHILD | WS_VISIBLE,
x,y,
Width,Height,
hWnd,NULL,
NULL,NULL);
je n'arrive pas à modifier la couleur
et si il est créé de cette façon :
CreateWindowEx(0,"BUTTON",nom_boutton,
BS_OWNERDRAW
| WS_CHILD | WS_VISIBLE,
x,y,
Width,Height,
hWnd,NULL,
NULL,NULL);
avec dans le traitement du message WM_DRAWITEM
LPDRAWITEMSTRUCT pdis;
HDC hDC;
bool is_pushed, is_focused , is_checkeded;
UINT uState;
LONG res=0;
pData = (PlanningCtrl *)GetWindowLong(hWnd,GWL_USERDATA);
// On affecte à pdis le contenu de lParam
pdis = (LPDRAWITEMSTRUCT) lParam;
// Vérifie si le bouton est appuyé
is_pushed = pdis->itemState & ODS_SELECTED;
// et s'il détient le focus
is_focused = pdis->itemState & ODS_FOCUS;
// et son état
is_checkeded = pdis->itemState & ODS_CHECKED; //reste tout le temps à faux
//Définir la couleur du texte:
SetTextColor(pdis->hDC, RGB(0,0,0));
//Définir la couleur du fond:
SetBkColor(pdis->hDC, RGB(0,255,0));
ExtTextOut(pdis->hDC,0,0,ETO_CLIPPED|ETO_OPAQUE,&(pdis->rcItem),"toto",4,NULL);
// Dessin du bouton
DrawEdge(pdis->hDC,&(pdis->rcItem),(is_pushed?EDGE_SUNKEN:EDGE_RAISED),BF_RECT);
return TRUE;
je n'arrive pas à modifier l'état du bouton mais je peux choisir la couleur :/
auriez vous une idée qui pourrai m'aider ?