I am creating a basic GUI with the Windows API and I have run into an issue. It starts with a main window that opens with a custom background color I set `(RGB(230,230,230))`. It then displays text in the upper left corner with the static control.

```
settingstext = CreateWindow("STATIC",
                             "SETTINGS",
                             SS_LEFT | WS_CHILD,
                             12,
                             20,
                             100,
                             20,
                             hwnd,
                             NULL,
                             proginstance,
                             NULL);
ShowWindow(settingstext, 1);

```

This works, but when the text is displayed I need a way to change the background of it to match the main window or else it just looks like it doesn't blend in. 

My question is, how do I do this? I currently use the method below and it works, but I wanted to know, is there a way to permanently set the background color somehow, right after the `CreateWindow` function for the static control without changing system colors, and just have it apply to that one control and not anything that sends the `WM_CTLCOLORSTATIC` message. I have experimented around with using the `GetDC` function and `SetBkColor` function outside of the message loop but nothing works. 

```
    case WM_CTLCOLORSTATIC:
    {
    HDC hdcStatic = (HDC) wParam;
    SetTextColor(hdcStatic, RGB(0,0,0));
    SetBkColor(hdcStatic, RGB(230,230,230));
    return (INT_PTR)CreateSolidBrush(RGB(230,230,230));
    }

```

I want to do this because...

* I don't want to fill up my message loop with functions that need to be called every time the window repaints.
* Have the changes apply to only this static control.

I would be very thankful for any help that could be provided, at least pointing me in the right direction, thanks.