MFC中的Date Time Picker控件如何修改背景色?

时间:2022-10-27 14:52:16
Date Time Picker控件如何修改背景色?我想修改的是如图所示红圈范围内的小矩形的背景色,试了各种方法都没效果。在OnCtlColor里改没有效果,还是白色的。
MFC中的Date Time Picker控件如何修改背景色?

6 个解决方案

#1


==wm_ctlcolor这个消息里面设置!

#2


引用 1 楼 sha_jinhao 的回复:
==wm_ctlcolor这个消息里面设置!

wm_ctlcolor试了没有效果。

#3


重载CDateTimeCtrl类,添加处理WM_ERASEBKGND消息即可。

#4


楼上V5,根据楼上的提示,功能实现了。 MFC中的Date Time Picker控件如何修改背景色?
方法如楼上所说:从CDateTimeCtrl类派生一个子类CMyDateTimeCtrl,在CMyDateTimeCtrl的WM_ERASEBKGND消息函数中添加如下代码:
BOOL CMyDateTimeCtrl::OnEraseBkgnd(CDC* pDC)
{
CRect rect;
GetClientRect(&rect);

pDC->FillSolidRect(&rect, RGB(199, 237, 204));

//return CDateTimeCtrl::OnEraseBkgnd(pDC);
return TRUE;  // very important
}

最后为Date Time Picker控件添加一个CMyDateTimeCtrl类型的控件变量即可。

#5


按这个改了还是不行

#6


3楼的方法在win7下貌似没用!

#1


==wm_ctlcolor这个消息里面设置!

#2


引用 1 楼 sha_jinhao 的回复:
==wm_ctlcolor这个消息里面设置!

wm_ctlcolor试了没有效果。

#3


重载CDateTimeCtrl类,添加处理WM_ERASEBKGND消息即可。

#4


楼上V5,根据楼上的提示,功能实现了。 MFC中的Date Time Picker控件如何修改背景色?
方法如楼上所说:从CDateTimeCtrl类派生一个子类CMyDateTimeCtrl,在CMyDateTimeCtrl的WM_ERASEBKGND消息函数中添加如下代码:
BOOL CMyDateTimeCtrl::OnEraseBkgnd(CDC* pDC)
{
CRect rect;
GetClientRect(&rect);

pDC->FillSolidRect(&rect, RGB(199, 237, 204));

//return CDateTimeCtrl::OnEraseBkgnd(pDC);
return TRUE;  // very important
}

最后为Date Time Picker控件添加一个CMyDateTimeCtrl类型的控件变量即可。

#5


按这个改了还是不行

#6


3楼的方法在win7下貌似没用!