改变背景颜色

时间:2015-07-30 18:39:27

标签: c++ colors background createwindow

在用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()来更改这些子窗口中显示的值。

1 个答案:

答案 0 :(得分:0)

编辑控件在要绘制时将WM_CTLCOLOR消息发送到其父窗口。您可以通过处理此消息来控制文本和背景颜色。因此,您无法通过一次API调用来控制颜色,您必须设置变量以记住您想要的颜色,然后更改或使编辑控件无效以使其重新绘制,然后在WM_CTLCOLOR中使用这些变量。