Hi friends of asm !

For 2 weeks now, im trying to solve the following problem, without any effort:

Display of a window (without focus) that overlaps all others, even fullscreen directx windows used in many games.

The purpose of my program is to display important status information like B/s datarate, IsConnected etc. especially while a game is running. Right now im using CreateWindowEx to create a topmost window and check WM_ACTIVATEAPP if someone wants to change my zorder. If so, i simply alter the other windows zorder to NOTTOPMOST using SetWindowPos and tada! im ontop again =)
In general all that works just fine, but some games (GROM, Battlefield 1942) somehow achieve of still overlapping my little window, regardless of what im doing! I noticed that when i manually set my window to topmost position using a extra installed hotkey function, it shows up in those 2 games just for a milisecond and then again disappears behind those others fullscreen windows.

I've already tried to find answers in google or #win32asm, but even #asm couldnt help me.
It would be a great pleasure if someone has an idea how to solve this, thanks in advance,



See ya !
Posted on 2003-02-08 08:11:32 by LordHelmchen
usually when a DX app runs in fullscreen mode it usually does so in exclusive mode i.e it gets access to the video screen buffer and so excludes GDI from the display chain(unless the directx program specifically wants to use it).

For a DX windowed app, the situation is the same.

AS Far as I know there is know way for an external program to draw to the screen when a DX application with focus is running in fullscreen exclusive mode. Only the DX app itself can draw in the window and "make it stick".


Anyway if I were playing a game I wouldn't want anther app messing around my valuabe realestate.

You ask in the game programming forum to see if there's anything you can try.
Posted on 2003-02-08 10:14:47 by MArtial_Code
wouldnt it be possible to intercept the directx window creation call using Hooks and then leave the EXCLUSIVE mode bit pattern out?
Posted on 2003-02-08 15:03:32 by LordHelmchen
How does MSN messenger do it? It can almost always make those silly pop-ups. (Works when you're playing half-life, dunno about other DX games)
Posted on 2003-02-08 18:26:50 by Miko
hello Miko, as far as i know, MSN uses that NT-intern MsgPopup system, but the method i described above works in Halflife too. It just doesnt work in SOME games. Those must have included some anti-overlap code.
Posted on 2003-02-08 18:33:25 by LordHelmchen