编辑框与背景颜色不显示文本

时间:2012-07-20 06:15:57

标签: c++ winapi onpaint editbox

我使用Win32 C ++创建了编辑框。我已经将它子类化并覆盖了OnPaint menthod,其中我填充了一些背景颜色。

现在,如果我输入一些文字,我无法看到任何文字,但我可以看到光标移动。

如果我没有添加任何背景颜色,我可以在编辑框中看到文字。

知道为什么我没有获得带背景颜色的文字吗?

1 个答案:

答案 0 :(得分:2)

您不应该为编辑控件处理WM_PAINT。在这里,您只是尝试填充背景颜色,但在此过程中您不允许原始编辑控制过程绘制内容,在这种情况下,它是您输入的文本。光标将可见,因为它使用ShowCaret函数显示。

因此,如果您只想更改编辑控件的背景颜色,请在父窗口中处理WM_CTLCOLOREDIT和WM_CTLCOLORSTATIC并返回画笔。请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/bb761691%28v=vs.85%29.aspx