更改子分类Cstatic控制的背景颜色
Change the background color of a subclassed CStatic control
我现在正在写自己的cstatic子类,我对如何更改其背景颜色有些困扰。
从以前的经验来看,我习惯于用我想要的颜色对" ctlcolorstatic"消息做出反应。
但是,这是我目前的子类:
class LocationPane : public CWindowImpl<LocationPane, CStatic>
{
DECLARE_WND_CLASS(L"LocationPane");
public:
BEGIN_MSG_MAP_EX(LocationPane)
MSG_WM_PAINT(OnPaint)
MSG_WM_CTLCOLORSTATIC(OnCtlColorStatic);
END_MSG_MAP()
LocationPane();
~LocationPane();
private:
HBRUSH OnCtlColorStatic(CDCHandle cd, CWindow wnd);
//Paint routine
void OnPaint(CDCHandle dc);
};
我试图听这篇消息,但我根本没有收到它。但是,我确实会收到油漆消息,所以我不能怪我的自定义控制,因为我根本不工作。
尝试处理油漆例程中的背景颜色是合法的解决方案吗?我真的不喜欢这样解决它,但是我没有收到我用过的其他信息。
如果需要其他代码,请随时提出,我将很乐意为您提供其他资源。
预先感谢。
我想您想在托管您的控件的父窗口中捕获WM_CTLCOLORSTATIC
。当您想拥有文本控件具有不同的背景颜色时,通常用于使用。
但是,如果您要覆盖WM_PAINT,则不妨让您的OnPaint绘制背景颜色。
相关文章:
- 在特定时间内更改 QLabel 的背景颜色
- 更改包含 QButton 的 Qlayout 的背景颜色
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- MFC 更改 CListCtrl 背景颜色
- 如何仅设置 QTabWidget 背景颜色样式表
- 为什么不能使用 setData() 在 QTreeView 中设置单元格的背景颜色?
- 在另一个小部件中更改QWidget的背景颜色
- 同一图像中的反转文本和背景颜色
- 使用winapi使用按钮更改窗口的背景颜色
- 当在QTableView上丢失焦点时,失去背景颜色
- 当鼠标越过按钮时,我可以更改按钮背景颜色吗?
- 在加载页面时,如何为iwebbrowser2设置背景颜色
- 更改子分类Cstatic控制的背景颜色
- 使用 DirectX 11 插值背景颜色?
- 10'000 行后控制台中的 C++ 背景颜色错误
- 如何设置按钮的背景颜色,包括复选框按钮
- 更改控制台应用的背景颜色C++
- 如何通过按Fl_Button更改Fl_Window的背景颜色
- QTreeView 项目悬停/基于当前颜色选择的背景颜色
- 如何更改可检查的QPushButton后代的背景颜色