How to use WS_EX_LAYERED on child controls

后端 未结 1 1287
青春惊慌失措
青春惊慌失措 2021-01-06 15:36

Since windows 8, WS_EX_LAYERED is available to use on child controls, (so says MSDN) However I\'ve been unable to make it work. In the following code, I\'m trying to make

相关标签:
1条回答
  • 2021-01-06 16:40

    Thanks to the link @Hans suggested I have found the answer. A manifest entry is required that specifies at least Windows 8 compatibility (child layering support only started with Windows 8). The following should be included as a manifest file for anyone wanting to use layered child windows.

    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
      <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1"> 
        <application>
          <!--The ID below indicates app support for Windows 8 -->
          <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
        </application>
      </compatibility>
      <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Microsoft.Windows.Common-Controls"
                version="6.0.0.0"
                processorArchitecture="*"
                publicKeyToken="6595b64144ccf1df"
                language="*"
            />
        </dependentAssembly>
      </dependency>
    </assembly>
    

    For the purposes of completeness, I've included the entire file but the relevant tag is the <compatibility> element specifying the GUID for Windows 8.

    You may declare compatibility for other OS versions too, as described at the docs page "Targeting your application for Windows".

    0 讨论(0)
提交回复
热议问题