在用C ++编写的Win32程序中,我定义了一堆子窗口来显示一些文本,因此:
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()来更改这些子窗口中显示的值。
答案 0 :(得分:0)
编辑控件在要绘制时将WM_CTLCOLOR消息发送到其父窗口。您可以通过处理此消息来控制文本和背景颜色。因此,您无法通过一次API调用来控制颜色,您必须设置变量以记住您想要的颜色,然后更改或使编辑控件无效以使其重新绘制,然后在WM_CTLCOLOR中使用这些变量。