Move manifest explanation in the main wxMSW install docs

This is important enough to be described directly there, especially now
when a manifest is required.
This commit is contained in:
Vadim Zeitlin 2023-01-07 18:39:04 +00:00
parent fc9ade48b9
commit e7297592cb
4 changed files with 35 additions and 30 deletions

View file

@ -476,9 +476,39 @@ instructions here are out of date, you can always simply copy a makefile or
project file from `$WXWIN\samples\minimal` or some other sample and adapt it to
your application.
If you are not using Visual Studio please see
@subpage plat_msw_winxp "Theme Support" to enable visual styles in your
application.
Using a Manifest {#msw_manifest}
----------------
All Windows applications should use a "manifest", which is a special kind of
Windows resource containing information about the application compatibility,
required, among else, for the application UI to look correctly instead
of looking very outdated and different from other native applications.
MSVS projects automatically generate the manifest and embed it into the final
executable by default, so you don't need to do anything special when using
them, however you need to ensure that a manifest specifying the use of the v6
of the Common Controls Library is included when using another compiler.
The most straightforward way to do this is to include one of the manifests
provided by wxWidgets in the `include\wx\msw\wx.rc` file. It is sufficient to
simply include it from your own `.rc` file in order to use a correct manifest
automatically.
To be precise, wxWidgets offers three manifests, differing only in which
DPI-awareness mode they use. Which of the three is used depends on the value of
`wxUSE_DPI_AWARE_MANIFEST` define. See [MSW Platform-Specific Build Issues](@ref high_dpi_platform_msw)
section of the High DPI overview for more information.
Note that the behaviour described above is customizable and you may define
`wxUSE_NO_MANIFEST` before including `wx/msw/wx.rc` to prevent including a
manifest if you prefer to embed it in some other way and so don't want to use
the wxWidgets-provided or, on the contrary, predefine `wxUSE_RC_MANIFEST=1` to
force using wxWidgets manifest even with MSVC, where it wouldn't be used by
default.
More information about application manifests in general is available at
https://learn.microsoft.com/en-us/windows/win32/controls/cookbook-overview#using-manifests-or-directives-to-ensure-that-visual-styles-can-be-applied-to-applications
Advanced Library Configurations {#msw_advanced}
-------------------------------