2010-09-03 7 views
0

Est-il possible de définir la couleur d'arrière-plan d'un bouton de dialogue dans Win32 sans utiliser de bouton dessiné par le propriétaire?Définition de la couleur d'arrière-plan du bouton de dialogue Win32 (non dessiné par le propriétaire)

Les peintures qui suivent, l'arrière-plan de chaque élément de dialogue à l'exception des boutons (non propriétaire tiré):

case WM_CTLCOLOREDIT: 
case WM_CTLCOLORSTATIC: 
case WM_CTLCOLORBTN: 

    HDC hdcStatic = (HDC)wParam; 
    SetBkColor(hdcStatic, bgEditColor);  

    return (INT_PTR)bgBrushCurrent; // a red brush created earlier 

Répondre

2

Il est tout à fait explicite dans le SDK docs pour le message:

Boutons avec Les styles BS_PUSHBUTTON, BS_DEFPUSHBUTTON ou BS_PUSHLIKE n'utilisent pas le style renvoyé. Les boutons avec ces styles sont toujours dessinés avec les couleurs par défaut du système. Le dessin des boutons-poussoirs nécessite plusieurs différentes brosses-visage, surlignage et ombre, mais le message WM_CTLCOLORBTN permet de renvoyer une seule brosse. Pour donner un aspect personnalisé aux boutons-poussoirs , utilisez un bouton dessiné par le propriétaire.

La plupart des programmes Windows utilisent aujourd'hui le style visuel sélectionné par l'utilisateur. Recommandé, ajoutez le required manifest.

Questions connexes