我正在使用Visual C的资源编辑器创建一个对话框.
当我运行编辑器的测试按钮时,对话框的组件以现代外观显示,而当运行创建并显示对话框的应用程序时,它以旧外观显示…我只是使用WINAPI调用显示对话框,而不是MFC.
以下是截图(上图是设计时UI外观的示例,另一个是运行时的UI外观):
当我运行编辑器的测试按钮时,对话框的组件以现代外观显示,而当运行创建并显示对话框的应用程序时,它以旧外观显示…我只是使用WINAPI调用显示对话框,而不是MFC.
以下是截图(上图是设计时UI外观的示例,另一个是运行时的UI外观):
有谁知道我做错了什么???
提前致谢,
亨利
您的应用程序清单是否指定您要使用comctl32.dll版本6?这是在Windows XP中使用
visual styles and a more modern look的要求之一.
创建清单并使应用程序能够使用视觉样式.
链接到ComCtl32.lib并调用InitCommonControls(请参阅MSDN Library中的Platform SDK文档).
将名为YourApp.exe.manifest的文件添加到具有以下XML格式的源树:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="CompanyName.ProductName.YourApp" type="win32" /> <description>Your application description here.</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> </assembly>
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.exe.manifest"
注意:将以前的条目添加到资源时,必须将其格式化为一行.或者,您可以将XML清单文件放在与应用程序的可执行文件相同的目录中.操作系统将首先从文件系统加载清单,然后检查可执行文件的资源部分.文件系统版本优先.