作者:15-Sports | 来源:互联网 | 2023-08-12 12:57
这是Windows桌面属性窗口这是浩方对战平台设置窗口这是我的测试程序窗口大家可以发现我的CheckBox(还有RadioBox等)的背景都无法和TabCtrl的
这是Windows桌面属性窗口
这是浩方对战平台设置窗口
这是我的测试程序窗口
大家可以发现我的CheckBox(还有RadioBox等)的背景都无法和TabCtrl的向下渐变的背景融合到一起,而上面另外两个窗口则不存在这个问题。
我很想知道这个效果到底是如何实现的?
我有一个不好的实现方法:就是用PS获取CheckBox对应该位置下的TabCtrl的颜色值,用该颜色值构造一个HBRUSH,然后在OnCtlColor函数中return 该 HBRUSH,虽然这样也可以解决这个问题(肉眼几乎看不出差别)但是我觉得这肯定不是通用的解决办法。
希望有这个经验的朋友告之原因,困扰我很久的一个问题。
11 个解决方案
创建一个基于CButton的新类CMyButton,然后在里面重载PreSubClassWindow()和DrawItem(..)这两个函数,然后再添加WM_PAINT这个消息.在OnPaint()函数中绘制Raido或者CheckBox(Raido和CheckBox都是用这种方法)..最后把控件和CMyButton关联起来...
刚学VC的时候,我用MFC做过,用的是这种方法:
http://www.vckbase.com/document/viewdoc/?id=398
是的,用spy++可以看到Tab Control
MSDN 在Property Sheet的介绍里提到的“日期和时间 属性”对话框,用spy++也看到Tab Control
http://msdn.microsoft.com/en-us/library/bb774538(v=VS.85).aspx
这说明Property Sheet包含了Tab Control