dje*_*dot 5 c++ mfc mfc-feature-pack
我似乎无法在对话框应用程序中以Vista样式显示CMFCButton.我正在使用带有MFC功能包的VS2008.
以下是重现我的问题的一些步骤:
测试应用程序图片http://img7.imageshack.us/img7/3/testapp.png
如您所见,CButton具有正确的样式,但CMFCButton没有.
我在这里缺少什么?
在CMFCButton
具有BS_OWNERDRAW
风格默认设置-你可以将其删除OnInitDialog()
您的对话框:
mfcButton.ModifyStyle(BS_OWNERDRAW, 0, 0);
Run Code Online (Sandbox Code Playgroud)
但是,删除所有者绘制样式会导致CMFCButton的许多方法变得无用(例如SetTextColor).您可以通过设置可视化管理器来使用当前窗口主题获取要渲染的按钮:
CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
Run Code Online (Sandbox Code Playgroud)
这样做而不是ModifyStyle
上面的操作,导致按钮符合默认样式但仍具有较新的渲染功能.
归档时间: |
|
查看次数: |
4138 次 |
最近记录: |