我正在开发一个可以在Windows中显示内容(图形,文本等)的应用程序。问题是我是Windows编程的新手,我找不到任何合适的解决方案。
我尝试了什么:
1:我尝试使用WS_EX_LAYERED
标记创建一个分层窗口:
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);
问题在于这种方法是一切正常,我可以在屏幕上绘制任何图像或文本,直到我不在其他应用程序的全屏幕。例如播放视频。
经过大量搜索,我找到了解决问题的其他方法:
2:Direct3D
我在msdn:http://msdn.microsoft.com/en-us/library/windows/desktop/dd797814(v=vs.85).aspx找到了一个代码示例和一个很好的教程,但是有一个问题(一如既往)。在我看来,它使用的是每个显卡都不支持的硬件覆盖。例如:ATI Radeon HD 6XXXX。但这正是我所需要的。
有谁知道不需要硬件支持的正确解决方案?或者我做错了什么?
答案 0 :(得分:1)
我解决了这个问题。我希望它会对某人有所帮助:
所以唯一的问题是我画完后没有把窗口带到前台。您可以致电SetWindowPos
来完成此操作。尽管这个解决方案不适用于Windows 8 metro表面。
答案 1 :(得分:0)
你试过SetWindowsRgn吗?