我正在尝试按钮,但它总是看起来像Windows 95平面按钮。如何让它看起来像vista风格?
hWndEdit = CreateWindowA("button", "Test",
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
100, 20, 140, 20, hWnd, NULL, NULL, NULL);
我哪里错了? 感谢
答案 0 :(得分:7)
它可以只看Vista中的Vista风格,请注意。您的应用程序还必须按照http://msdn.microsoft.com/en-us/library/aa289524(v=VS.71).aspx嵌入清单以启用视觉样式。
答案 1 :(得分:6)
在项目目录中创建名为“MyApp.exe.manifest”的文件(MyApp是您的应用程序名称)。然后使用您的收藏编辑器打开它并复制&过去的代码如下:
<?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>
完成后,将此文件添加到Visual Studio项目中(右键单击项目图标并选择“添加” - &gt;“现有项目”。
将此清单文件添加到VS解决方案就足以启用XP主题。
希望这会有所帮助......
答案 2 :(得分:5)
您的构建环境是什么?如果是Visual Studio 2005或2008,则所有其他清单建议都不适用,因为VS8及以上版本已包含清单信息。
在这种情况下,添加清单依赖项的最简单方法是使用您添加到某个cpp或头文件的简单(特定于Microsoft的)编译器指令:
#pragma comment(linker,"/manifestdependency:\"type='win32' "\
"name='Microsoft.Windows.Common-Controls' "\
"version='6.0.0.0' "\
"processorArchitecture='x86' "\
"publicKeyToken='6595b64144ccf1df' "\
"language='*' "\
"\"")
以这种方式包含清单可以避免弄乱c-runtime清单依赖项或弄乱UAC正常工作所需的设置。
答案 3 :(得分:3)
您需要为.exe添加一个清单,指明您要使用主题。默认行为是为了兼容性而使用Win9x / NT / 2K控件 - 主题XP +控件略大。 This解释了如何详细添加此类清单。