Я создаю базовый графический интерфейс с Windows API, и у меня возникла проблема.Он начинается с главного окна, которое открывается с пользовательским цветом фона, который я установил (RGB(230,230,230))
.Затем он отображает текст в верхнем левом углу со статическим элементом управления.
settingstext = CreateWindow("STATIC",
"SETTINGS",
SS_LEFT | WS_CHILD,
12,
20,
100,
20,
hwnd,
NULL,
proginstance,
NULL);
ShowWindow(settingstext, 1);
Это работает, но когда отображается текст, мне нужен способ изменить его фон, чтобы он соответствовал главному окну, иначепросто выглядит так, как будто не смешивается.
Мой вопрос: как мне это сделать?В настоящее время я использую метод, описанный ниже, и он работает, но я хотел знать, есть ли способ как-то постоянно установить цвет фона, сразу после функции CreateWindow
для статического элемента управления без изменения системных цветов, и просто применить его кэтот элемент управления, а не все, что отправляет сообщение WM_CTLCOLORSTATIC
.Я экспериментировал с использованием функции GetDC
и SetBkColor
вне цикла сообщений, но ничего не работает.
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));
}
Я хочу сделать это, потому что ...
- Я не хочу заполнять свой цикл сообщений функциями, которые нужно вызывать каждый раз, когда окно перерисовывается.
- Пусть изменения применяются только к этому статическому элементу управления.
Я был бы очень благодарен за любую помощь, которая может быть оказана, по крайней мере, указав мне правильное направление, спасибо.