Win32 API:创建具有Aero效果的按钮

时间:2017-09-13 07:25:15

标签: winapi mingw win32gui

我可以使用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。

1 个答案:

答案 0 :(得分:0)

编辑:
确保CREATEPROCESS_MANIFEST_RESOURCE_ID定义为1

或者用以下内容替换清单行:

1 RT_MANIFEST "manifest.xml"

1 24 "manifest.xml"