我正在尝试制作一个按钮,但它总是看起来像Windows 95平面按钮.如何让它看起来像vista风格?
hWndEdit = CreateWindowA("button", "Test",
WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON,
100, 20, 140, 20, hWnd, NULL, NULL, NULL);
Run Code Online (Sandbox Code Playgroud)
我错在哪里?谢谢
它可以只看Vista中的Vista风格.您的应用程序还必须根据http://msdn.microsoft.com/en-us/library/aa289524(v=VS.71).aspx嵌入清单以启用视觉样式.
在项目目录中创建名为"MyApp.exe.manifest"的文件(MyApp是您的应用程序名称).然后使用您的fav编辑器打开它并复制并通过以下代码:
<?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>
Run Code Online (Sandbox Code Playgroud)
完成后,将此文件添加到Visual Studio项目中(右键单击项目图标,然后选择"添加" - >"现有项目".
将此清单文件添加到VS解决方案足以启用XP主题.
希望这可以帮助...
你的构建环境是什么?如果是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='*' "\
"\"")
Run Code Online (Sandbox Code Playgroud)
以这种方式包含清单可以避免弄乱c-runtime清单依赖项或弄乱UAC正常工作所需的设置.