Alexandre Julliard julliard@winehq.org wrote:
My question was whether it's drawn with transparency in that case, since it's not really specified in which cases a DDB is considered to have an alpha channel.
In order to draw it with a transparency it's necessary to create a 32-bpp DIB section, copy source bitmap bits, and use GdiAlphaBlend() with a DIB section. Basically my patch does all of this.
Yes of course. My question was whether on Windows it's drawn transparent even for the DDB case. I guess the answer is yes since you have an app that does this, but a small test case wouldn't hurt.
I just added the code to my test app to draw a bitmap with BitBlt() loaded with LoadBitmap() (instead of assigning it to the Static control), and the result is drawn without transparency under Windows.
But if you assign it to the Static control it's transparent, right? And it's really a DDB, right?
Right, it's a DDB. I've attached a test app to the bug 47018. That version of the test won't run under XP, I've fixed it in a later version, but that changes nothing to the loading and painting code, I'm just mentioning this in case you will try it under XP.
Just want to make sure that we need special handling there, and that it's not the app getting a DDB when it should be getting a DIB or something like that.
Sure.