I am working on an application that would display things(graphics, texts, etc) like an OSD in Windows. The problem is that I am a newbie in windows programming and I couldn't find any proper solution.
What I've tried:
1: I tried to create a layered window with the WS_EX_LAYERED
flag:
CreateWindowEx(WS_EX_LAYERED | WS_EX_TRANSPARENT | WS_EX_TOPMOST | WS_EX_TOOLWINDOW, szWindowClass, NULL, WS_POPUP | WS_VISIBLE | WS_SYSMENU, 0, 0, 0, 0, hWndDesktop, NULL, hInstance, NULL);
The problem is with this approach is that everything works fine, I can draw any images or texts on the screen until I am not in fullscreen in other application. For example playing videos.
After searching a lot I have found an other solution for my problem:
2: Direct3D
I found a code example and a good tutorial at msdn: http://msdn.microsoft.com/en-us/library/windows/desktop/dd797814(v=vs.85).aspx, but there is a problem(as always). It seems to me it uses a hardware overlay which is not supported in every graphics card. For example: ATI Radeon HD 6XXXX. But it is exactly what I need.
Does anyone know a proper solution that doesn't need hardware support? Or did I do something wrongly?