繁体   English   中英

MFC自定义控件背景/文本颜色

[英]MFC Custom Control Background/Text Color

因此,我已经使用MFC几年了,制作了包括自定义控件在内的各种界面。 最近有人要求我开始制作一个可以动态设置背景和文本颜色的界面。 我开始研究此问题,并且遇到了使某些自定义控件无法正常运行的问题。 使用该接口,所有生成WM_CTLCOLOR消息的控件都可以很好地工作,以允许父级设置子级控件的颜色,但是并非我自定义的所有控件都会生成这些消息。 具体来说,我是基于CTabCrtl建立的一个类,还有一些基于CWnd的类。 这些类在调用绘画之前似乎不会生成WM_CTLCOLOR消息。 我想知道是否有人对如何获取控件父级CWnd的背景和文本颜色或如何手动创建WM_CTLCOLOR消息有任何想法。 我试图获取控件父级的当前DC,以便可以调用GetBkColor()和GetTextColor(),但这样做似乎总是返回默认值。 我也尝试过创建WM_CTLCOLOR消息,但不知道我应该在哪里创建它们或确切的语法。.任何帮助都将非常有用。

WM_CTLCOLOR的想法是必须从WM_PAINT和WM_ERASEBKGND内部调用。 在这种情况下,您将拥有DC。 您将消息发送给父母,然后得到画笔,并设置了文本和背景颜色。

我只看到一个主要问题,即WM_CTLCOLOR不是真正的窗口消息...它只是从SDK中描述的各种WM_CTLCOLOR ...消息中合成的。

因此,该语法已在MSDN中进行了记录。 将DC手柄投射到WPARAM上,并将窗口手柄投射到LPARAM ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM