Hab Problem bei WM_CTLCOLORSTATIC



  • case WM_CTLCOLORSTATIC:
    {
       SetBkMode((HDC)wParam,OPAQUE); 
       SetBkColor  ((HDC)  wParam, RGB ( 0 ,  0, 0));
       SetTextColor((HDC)  wParam, RGB (  255, 255, 255));
    }
    return (LONG)g_hbrBackground;
    

    hab mit diesem Code Bsp meine statics gefaerbt, jetzt zu meinem problem wie Aendere ich waerend der laufzeit bsp. durch Button Click die farbe



  • Setze für den Farbwerte ne statische Variable (in der WndProc) und änder die Werte (der statischen Variablen) unter dem entsprechenden WM_COMMAND-Handler. Danach Rufst Du

    InvalidateRect(hWndStatic, NULL, TRUE);
    

    auf, um Static-Controls zu aktualisieren.

    Also sieht Dein Handler dann in etwa so aus:

    static UINT uiStaticBkColor, uiStaticTextColor;
    switch(uiMessage)
    {
    
    // ...
    case WM_CTLCOLORSTATIC:
    {
       SetBkMode((HDC)wParam,OPAQUE); 
       SetBkColor  ((HDC)  wParam, uiStaticBkColor);
       SetTextColor((HDC)  wParam, uiStaticTextColor);
    }
    return (LONG)g_hbrBackground;
    

    Vergiss nicht, bei WM_CREATE einen Anfangswert zu setzen 😉 .



  • Funktioniert super sogar auf anhiep THX 😃
    Haet net gedacht das das so eifach is haet man drauf kommen koennen 😕


Anmelden zum Antworten