Layered Windows and DirectX ??? [modified]
-
I create a topmost window using CreateWindowEx() function (use WS_EX_WINDOWLAYERED|WS_EX_TOPMOST). It is normal, but when my window is upper an window form of an application which use DirectX (such as a game), my window disappear ??? Only the part upper window which use DirectX is disappear, other part is oke. What is this problem ???
-
I create a topmost window using CreateWindowEx() function (use WS_EX_WINDOWLAYERED|WS_EX_TOPMOST). It is normal, but when my window is upper an window form of an application which use DirectX (such as a game), my window disappear ??? Only the part upper window which use DirectX is disappear, other part is oke. What is this problem ???
I suppose that DirectX engine, for performance reasons, uses a specific mode of transferring images to video controller. I think the data are put directly to video buffer, at a point in which the Windows system does not have access. That’s why Windows cannot combine DirectX image with your frame to apply transparency effect. The DirectX frame can be only clipped, but cannot be read. In my tests, even Print Screen button does not include the image which belongs to a DirectX frame. (I do not now about other environments; I suppose that if Print Screen works there, then the transparency will work too). I think there is no problem in your application. It is a way in which DirectX and Windows interact.