0

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

4

1 回答 1

0

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

于 2015-07-30T19:44:03.803 回答