Vista 风格的 CMFCButton

发布于 2024-08-06 03:54:10 字数 463 浏览 7 评论 0原文

我似乎无法在对话框应用程序中以 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

万劫不复 2024-08-13 03:54:10

默认情况下,CMFCButton 设置了 BS_OWNERDRAW 样式 - 您可以在对话框的 OnInitDialog() 中删除它:

mfcButton.ModifyStyle(BS_OWNERDRAW, 0, 0);

但是,删除所有者绘制style 导致 CMFCButton 的许多方法变得无用(例如 SetTextColor)。您可以通过设置视觉管理器来使用当前 Windows 主题渲染按钮:

CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));

这是代替上面的 ModifyStyle 完成的,从而产生适合默认样式但仍具有更新的渲染功能的按钮。

The CMFCButton has the BS_OWNERDRAW style set by default - you can remove it in the OnInitDialog() for your dialog:

mfcButton.ModifyStyle(BS_OWNERDRAW, 0, 0);

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:

CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));

This is done instead of the ModifyStyle above, resulting in buttons that fit the default style but still have the newer rendering features.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文