Vista 风格的 CMFCButton
我似乎无法在对话框应用程序中以 Vista 样式显示 CMFCButton。我正在使用带有 MFC 功能包的 VS2008。
以下是重现我的问题的一些步骤:
- 创建一个新的 MFC 项目;
- 指定一个基于对话框的项目。
- 在主对话框中添加两个按钮。
- 为每个按钮添加一个变量。将其中一个变量设为 CButton,将另一个变量设为 CMFCButton。
- 编译并运行。
测试应用图片 http://img7.imageshack.us/img7/3/testapp.png< /a>
如您所见,CButton 具有正确的样式,但 CMFCButton 没有。
我在这里缺少什么?
I can't seem to get a CMFCButton to be displayed in Vista style in a dialog box application. I'm using VS2008 with MFC Feature Pack.
Here are some steps to reproduce my problem:
- Create a new MFC Project;
- Specify a Dialog based project.
- Add two buttons to the main dialog.
- Add a variable for each button. Make one of the variables a CButton, the other one a CMFCButton.
- Compile and run.
test app picture http://img7.imageshack.us/img7/3/testapp.png
As you can see, the CButton has the correct style but the CMFCButton does not.
What I am missing here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
默认情况下,
CMFCButton
设置了BS_OWNERDRAW
样式 - 您可以在对话框的OnInitDialog()
中删除它:但是,删除所有者绘制style 导致 CMFCButton 的许多方法变得无用(例如 SetTextColor)。您可以通过设置视觉管理器来使用当前 Windows 主题渲染按钮:
这是代替上面的
ModifyStyle
完成的,从而产生适合默认样式但仍具有更新的渲染功能的按钮。The
CMFCButton
has theBS_OWNERDRAW
style set by default - you can remove it in theOnInitDialog()
for your dialog:However, removing the owner draw style results in many of the methods of CMFCButton being rendered useless (e.g. SetTextColor). You can get the button to render using the current windows theme by setting up the visual manager:
This is done instead of the
ModifyStyle
above, resulting in buttons that fit the default style but still have the newer rendering features.