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"