我有一个 .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 对话框,但对话框没有视觉样式。