我一张有几个控件的窗口,但只有编辑控件是忽略了视觉样式。我试图找出原因,但迄今为止没有运气。这里是什么样子:为什么我的编辑控件忽略应用的视觉样式?
可以看出,按钮和列表框控件具有适当的视觉风格。编辑控件,但是,不。我有适当的风格改变一串代码无关之后应用一次前几天,所以我知道这是可能的。
注意事项:
- 我试图调用
InitCommonControls
和InitCommonControlsEx
没有成功。 - 我已经应用到编辑控制的WS_EX_CLIENTEDGE,并有总是有这样的扩展样式开启,即使当它被优先作业。
我已经包含尽可能多的代码来帮助追踪这个问题。
从我的TextBox类(它继承组件):
protected:
virtual void OnRegistering(CreationParameters& createParams)
{
// this is passed in as the lpClassName parameter in
// CreateWindowEx() and the lpszClassName parameter in WNDCLASSEX
createParams.BaseClassName = WC_EDIT;
// passed as the dwStyle parameter in CreateWindowEx()
createParams.WindowStyles |= ES_AUTOHSCROLL | ES_AUTOVSCROLL;
// passed as the dwExStyle parameter in CreateWindowEx()
createParams.WindowExStyles |= WS_EX_CLIENTEDGE;
}
会和处理WM_CTLCOLOREDIT或WM_ERASEBKGND消息有什么问题要怎样做呢?或处理字体的问题? 还是别的?因为在这一点上我完全没有想法。
尝试删除包含在你的代码WS_EX_CLIENTEDGE行,看看是否有帮助。 – mfc 2013-02-24 02:13:01
@mfc:我这样做了,它所做的全部都是删除边框。 WS_EX_STATICEDGE与我正在寻找的东西有点接近,但我实际上最终自己解决了这个问题。 – jvstech 2013-02-24 02:52:53
如果问题只有无边框,则可以通过将WS_BORDER添加到WindowStyles来添加它。 – mfc 2013-02-24 03:56:58