The question remains somewhat unclear to me, but I'll take a stab at answering it anyway. Correct me if I'm wrong, I'm happy to delete or revise this answer…
As I understand it, the first image that you posted is the raw starting image—the one you want to appear as the splash screen. You know, Adobe Photoshop-style.
Along those lines, I assume that the area you want to be drawn transparently is the gray gradient area above and behind the stylized Bohr model. This would effectively mirror the effect achieved by Adobe's splash screen(s), where ornaments appear to "hang off" the border of the rectangular splash screen because they have a transparent background.
The problem is that the area you want to be transparent is not transparent in the original image. Neither is it a solid color, which can be knocked out in order to simulate transparency.
In fact, that's exactly how the answers to the linked question suggested to create a transparent window:
- Create a top-level window of the appropriate size, and make it a layered window by setting the
WS_EX_LAYERED
extended window flag.
- Paint its background with your splash screen image in response to the
WM_PAINT
message.
- Call the
SetLayeredWindowAttributes
function with the LWA_COLORKEY
flag to set a mask color in the splash screen image that will become transparent.
In order for this to work, the mask color needs to fill the area that you want to appear transparent. A common choice for this mask color is fuchsia (RGB = 255, 0, 255)—a fuchsed up color (credit to Hans Passant for this turn of phrase!) that is unlikely to appear anywhere else in an image.
This also allows you to do everything using simply GDI. No dependency on GDI+ required, and also likely to be slightly faster. With a splash screen, you want the thing to appear on the screen absolutely as quickly as possible.
You can, of course, do more complicated things, like using the BLENDFUNCTION
and/or an image with pre-multiplied alpha channel values. But I'd avoid all the effort unless absolutely necessary. Your users are going to see this splash screen for a second or two at most. It's just there to reassure them that the app is, in fact, starting up. If they're seeing it for longer periods than that, your time is better spent optimizing your app's startup time, rather than prettifying it.