commcrtl und Vista



  • Hallo,

    Ich benutze 2 PCs, mit Vista und XP.
    Auf dem XP-PC sieht der Button so aus: http://pics-load.net/?v=images/raXRrTqOYfListBox-Screen-XP.jpg
    Aber auf dem Vista-PC hat er so einen weißen rand:http://pics-load.net/?v=images/OW1bBmEEg4List-bessser-Vista.jpg

    Wie kann ich machen das bei Vista die Buttons so aussehen wie bei XP?

    MfG, Andrew

    P.S:Ich hab gehört dass das mit WM_CTLCOLORBTN geht aber wie soll ich auf die Nachricht reagieren?


  • Mod

    Wer zeichnet denn den Hintergrund?
    Ich sehe eher ein Problem, dass für das Zeichnen hier der Hintergrund geclippt wird.



  • Ich hab gar nichts geclippt! (soviel ich weiß.)
    Ich hab den StandardHintergrund genommen dh.

    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;
    


  • Okay hab es jetzt gefunden hier im FAQ!

    case WM_CTLCOLOREDIT: 
            SetBkMode((HDC)wParam,TRANSPARENT);         // Texthintergrund auf transparent setzen 
            SetTextColor((HDC)wParam,RGB(255,255,255)); // Textfarbe auf Weiss setzen 
            return (long)CreateSolidBrush(RGB(0,0,0));  // Hintergrundfarbe auf schwarz setzen 
            break;
    

    das hab ich dann geändert in:

    case WM_CTLCOLORBTN: 
            SetBkMode((HDC)wParam,TRANSPARENT);         // Texthintergrund auf transparent setzen 
            SetTextColor((HDC)wParam,RGB(255,255,255)); // Textfarbe auf Weiss setzen 
            return (long)CreateSolidBrush(RGB(0,0,0));  // Hintergrundfarbe auf schwarz setzen 
            break;
    

    Also jetzt kann ich die Hintergundefarbe von dem Button ändern aber wie ist die Standardfarbe also dieses grau? (Wenn es keiner weiß änder ich einfach die HIntergrundfabe von dem ganzen Fenster, aber ich würd es gerne wissen!)

    /edit:
    Ich glaube es ist ungefähr 200,200,200!

    Mfg, Andrew


Anmelden zum Antworten