TBitBtn incorrect on vista using "Windows Classic"
Original Reporter info from Mantis: Derek
-
Reporter name:
Original Reporter info from Mantis: Derek
- Reporter name:
Description:
When running applications, including the Lazarus IDE, which are:
(1) compiled with the option "Use manifest file to enabled themes", and
(2) the TBitBtn contains a glyph, and
(3) runs under Vista (64-bit in my case) which is using the "Windows Classic" theme
then all TBitBtn's display the icon but no text. All three must be true.
In the test case, I was using a TBitBtn with kind bkClose. I did try a custom glyph with the same result.
Additional information:
I have done a lot of testing on this as it is annoying. The "Windows Vista" theme uses a lot of memory so I tend to run without it, but I also want the button text.
If the image is compiled without "Use manifest file to enabled themes", the TBitBtn is displayed correctly.
If there is no image on the TBitBtn, then the TBitBtn will display the text
If you manually draw over the entire image (e.g. FillRect) after it is drawn from the ImageList, then the text on the TBitBtn will display.
If you try to draw over the image (e.g. draw a line or put the text over the image), the color settings are ignored, and the output is all in COLOR_BTNFACE (probably always the background color).
The internal Lazarus tests are detecting the new commctl DLL, but that themes are disabled.
So with the "Windows Classic" theme, Vista appears to be behaving like Windows 2000 or earlier, which I believe is different to how XP behaves.
Mantis conversion info:
- Mantis ID: 12270
- Version: 0.9.27 (SVN)
- Fixed in version: 0.9.27 (SVN)
- Fixed in revision: 18471 (#3058282d)
- Target version: 0.9.28