В моей программе Win32, написанной на C ++, я определил несколько дочерних окон для отображения некоторого текста, таким образом:
hnd_to_this_ch_window = CreateWindow(
L"EDIT",L"Some initial text", WS_VISIBLE | WS_CHILD | ES_LEFT,
position_of_this_window_X,
position_of_this_window_Y,
TEXTOUT_DEFAULT_WIDTH,
TEXTOUT_DEFAULT_HEIGHT,
handle_to_my_parent_window, NULL,
hinstance_variable_used_by_create_window,
NULL )
Мне нужно иметь возможность изменить их цвет фона на красный с одним вызовом, а затем вернуться к белому (или, возможно, другого цвета) с другим вызовом.
Кажется, я не могу найти ответы на то, как это сделать одним вызовом функции (подобно тому, как я просто использую SetWindowText () для изменения значений, отображаемых внутри этих дочерних окон.
Элемент управления редактирования отправляет сообщение WM_CTLCOLOR в родительское окно, когда оно собирается рисовать. Вы управляете текстом и цветами фона, обрабатывая это сообщение. Таким образом, вы не можете управлять цветами с помощью одного вызова API, вы должны установить переменные для запоминания нужных цветов, затем изменить или сделать недействительным элемент управления редактирования, чтобы перекрасить его, а затем использовать эти переменные в WM_CTLCOLOR.