【发布时间】:2015-10-23 07:34:04
【问题描述】:
我已经使用handle_to_this_window[i] = CreateWindow(L"EDIT",...) 在我的主窗口中定义并创建了一堆子窗口
呼叫类型。
我现在需要创建一个函数,允许我设置任何一个窗口的背景颜色。 比如:
R_color_value = 0, G_color_value = 200, B_color_value = 0;
ChangeChildBackgroundColor(handle_to_this_window[6], R_color_value, G_color_value, B_color_value);
R_color_value = 200, G_color_value = 0, B_color_value = 0;
ChangeChildBackgroundColor(handle_to_this_window[7], R_color_value, G_color_value, B_color_value);
请给我指出如何实现这一目标的正确方向吗?
【问题讨论】:
-
为您的窗口处理
WM_ERASEBKGND消息并绘制背景 -
查看
WM_CTLCOLOREDIT。 -
@RichardCritten:对于编辑控件,让父窗口处理
WM_CTLCOLOREDIT消息。或者切换到 RichEdit 控件并向其发送EM_SETBKGNDCOLOR消息 -
@RemyLebeau,OP 说子窗口,只是想帮助解决所提出的问题。我知道控制可以不同。
-
@RichardCritten:我知道 OP 说 child windows。他们的父窗口代表他们接收
WM_CTLCOLOREDIT:“当控件即将被绘制时,非只读或禁用的编辑控件会向其父窗口发送 WM_CTLCOLOREDIT 消息。通过响应此消息,父窗口可以使用指定的设备上下文句柄来设置编辑控件的文本和背景颜色。"
标签: c++ winapi colors background