0

我有一个 .NET C# 程序,它引用了一些 C++/CLI dll,而这些 dll 又可以启动一些旧版 MFC 表单/对话框。但是,当这些对话框启动时,它们不会应用当前的 Windows 主题(即视觉样式)启动。它们以旧的 Windows 98 样式打开。

如果我们使用 Application Exe 项目的 stdafx.h 中包含的pragma 注释通过原始 C++/CLI 项目启动,这些对话框确实会以视觉样式启动。

我已经尝试了引用的 Microsoft 文章中关于将视觉样式应用于 C++ 项目的一些建议。但是它们都不起作用,因为我假设本文针对的是纯 C++ 解决方案,而不是引用旧 MFC 对话框的混合 C# 解决方案。

tl;dr 可以从 C# 程序启动 MFC 对话框,但对话框没有视觉样式。

4

1 回答 1

1

“如果您希望您的应用程序使用视觉样式,您必须添加一个应用程序清单或编译器指令,指示如果可用,则应使用 ComCtl32.dll 版本 6。”

来源:https ://msdn.microsoft.com/en-us/library/windows/desktop/bb773175(v=vs.85).aspx

应用程序清单应该可以工作。

于 2016-01-29T20:47:38.873 回答