Изменить цвета фона Static Text при клике на кнопку в WinApi

У меня есть диалоговое модальное окно, в котором расположена кнопка и Static Text. При клике по кнопке я пытаюсь изменить цвет фона Static Text, но ничего не выходит. Ниже приведён основной код программы. Знаю, что с помощью сообщения WM_CTLCOLORSTATIC можно установить цвет, но это происходит только при открытии окна, а потом изменить его не получается. Пожалуйста, подскажите решение.

BOOL CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);
HINSTANCE hInst;

int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) {
    DialogBox(hInstance, MAKEINTRESOURCE(DLG_MAIN), 0, DlgProc);
    return 0;
}

BOOL CALLBACK DlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
        case WM_INITDIALOG: {
            hInst = GetModuleHandle(NULL);
        }
        break;

        case WM_COMMAND: {
            switch (LOWORD(wParam)) {
                case IDC_BUTTON_SET_COLOR: {
                    /*изменение цвета фона*/
                }
                break;
            }
        }
        break;

        case WM_CTLCOLORSTATIC: {
            static HBRUSH hBrush = CreateSolidBrush(RGB(230, 20, 20);
            if (GetDlgCtrlID((HWND)lParam) == IDC_COLOR) {   //IDC_COLOR - ID Static Text
                HDC hdcStatic = (HDC)wParam;
                SetBkColor(hdcStatic, RGB(230, 20, 20));
                return (BOOL)hBrush;
            }
        }
        break;

        case WM_CLOSE:   //закрытие диалогового окна
            EndDialog(hwnd, 0);
            return TRUE;
    }
    return FALSE;
}

UPD: Предложенное решение от человека ниже, но пока всё также не работает.

INT_PTR CALLBACK DlgProc(HWND, UINT, WPARAM, LPARAM);

HINSTANCE hInst;
HDC hdcStatic;

int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nCmdShow) {
    DialogBox(hInstance, MAKEINTRESOURCE(DLG_MAIN), 0, DlgProc);
    return 0;
}

INT_PTR CALLBACK DlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
    switch (uMsg) {
        case WM_INITDIALOG: {
            hInst = GetModuleHandle(NULL);
        }
        break;

        case WM_COMMAND: {
            switch (LOWORD(wParam)) {
                case IDC_BUTTON_SET_COLOR: {
                    SetBkColor(hdcStatic, RGB(255, 198, 24));
                }
                break;
            }
        }
        break;

        case WM_CTLCOLORSTATIC: {
            static HBRUSH hBrush = CreateSolidBrush(RGB(230, 20, 20);
            if (GetDlgCtrlID((HWND)lParam) == IDC_COLOR) {   //IDC_COLOR - ID Static Text
                hdcStatic = (HDC)wParam;
                SetBkColor(hdcStatic, RGB(colorCodeR, colorCodeG, colorCodeB));
                return (LONG_PTR)hBrush;
            }
        }
        break;

        case WM_CLOSE:   //закрытие диалогового окна
            EndDialog(hwnd, 0);
            return TRUE;
    }
    return FALSE;
}

Ответы (0 шт):