Win32 API: 创建具有 Aero 效果的按钮
Win32 API: Create button with Aero effect
我可以使用 CreateWindow 函数创建按钮,例如
CreateWindow(L"BUTTON", "Button label", WS_VISIBLE | WS_CHILD, 0, 0, 100, 25, parentWnd, ID, NULL, NULL);
完美,但按钮没有光泽效果,字体没有抗锯齿。
我还编译了清单:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
</assembly>
不确定,我必须使用哪个令牌,我从某个站点获得了样本。然后,我创建了资源列表:
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "manifest.xml"
编译:
i686-w64-mingw32-windres -i resources.txt -OCOFF resources.res
并最终链接到 resources.res
,但没有任何结果。
当我创建清单并将其放在我的 exe 文件附近时 - 一切正常。但是当我尝试将清单编译成资源时,我没有任何效果。
如何解决?我不喜欢使用任何库,尤其是像 Qt 这样大的库。
编辑:
确保 CREATEPROCESS_MANIFEST_RESOURCE_ID
定义为 1
或将清单行替换为以下内容:
1 RT_MANIFEST "manifest.xml"
或
1 24 "manifest.xml"
我可以使用 CreateWindow 函数创建按钮,例如
CreateWindow(L"BUTTON", "Button label", WS_VISIBLE | WS_CHILD, 0, 0, 100, 25, parentWnd, ID, NULL, NULL);
完美,但按钮没有光泽效果,字体没有抗锯齿。
我还编译了清单:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<dependency>
<dependentAssembly>
<assemblyIdentity type="Win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0"
processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
</dependentAssembly>
</dependency>
</assembly>
不确定,我必须使用哪个令牌,我从某个站点获得了样本。然后,我创建了资源列表:
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "manifest.xml"
编译:
i686-w64-mingw32-windres -i resources.txt -OCOFF resources.res
并最终链接到 resources.res
,但没有任何结果。
当我创建清单并将其放在我的 exe 文件附近时 - 一切正常。但是当我尝试将清单编译成资源时,我没有任何效果。
如何解决?我不喜欢使用任何库,尤其是像 Qt 这样大的库。
编辑:
确保 CREATEPROCESS_MANIFEST_RESOURCE_ID
定义为 1
或将清单行替换为以下内容:
1 RT_MANIFEST "manifest.xml"
或
1 24 "manifest.xml"