Hi im trying to write a program to overlay some GDI stuff over the whole screen. I want to see and interact with all the windows underneath but for my GDI overlay to be constant and flickerfree(im thinking of using backbuffering)

Could anyone give me a pointer as to how to create a full screen window? i require it to not have and title/caption bar and perferabley no border aswell, if checked out WNDCLASS and CreatWindowEx but i cant seem to figure out what i need.

My Second problem is how to i make the window transparent i.e. invisble? ive tried WS_EX_TRANSPARENT combined with WS_EX_TOPMOST but i just want my window to be overlayed ontop of all other windows, i dont want it to be infocus how do i do this? Will this overlay window recieve WM_PAINT when all window below it change? or would i have to invoke my own window refresh with a timer?

Thanks in advance for any help/info
Posted on 2002-12-08 00:04:33 by harry4321
This maybe of help: :)

from the win32.hlp CreateWindowEx
WS_EX_TOPMOST
Specifies that a window created with this style should be placed above all non-topmost windows and should stay above them, even when the window is deactivated. To add or remove this style, use the SetWindowPos function.

WS_EX_TRANSPARENT
Specifies that a window created with this style is to be transparent. That is, any windows that are beneath the window are not obscured by the window. A window created with this style receives WM_PAINT messages only after all sibling windows beneath it have been updated.


So process the WM_PAINT, at first try to draw nothing don't let the DefWindowProc process them WM_PAINT mesage).
Posted on 2002-12-08 05:44:50 by scientica
I guess winXp uses a transparent window to make the background turn black and white when you change the color theme or when you open the "turn off computer" dialog.

Or does it use something else......?
Posted on 2002-12-08 06:23:26 by clippy
Afternoon, gladiator.

Maybe this is what you're looking for?
\masm32\EXAMPLE8\MOB\CWS

Add the WS_EX_TOPMOST to the proggy, and it'll stay topmost while you can muck about with windows underneath.

Just make an image and window the size of the whole screen (using invoke GetSystemMetrics,SM_CXSCREEN and invoke GetSystemMetrics,SM_CYSCREEN to get the dimensions).

Cheers,
Scronty
Posted on 2002-12-08 07:43:58 by Scronty
Hi

Thanks for the info, ive sweated thru the night (i cant program during the day for some reason) and i have made huge leaps in my program aswell as my knowledge of Win32ASM and Win32API, but i still have a problem.

I have attached my program but althought i have set WS_EX_TOPMOST my window only sometimes stays on top. I think it has to do with setting WS_EX_TRANSPARENT aswell. Can anyone help?

Thanks again
Posted on 2002-12-09 19:00:49 by harry4321