Я работаю над приложением, которое отображает вещи (графику, тексты и т. Д.), Как экранное меню в Windows. Проблема в том, что я новичок в программировании окон, и я не нашел подходящего решения.Windows 7/8 Экран наложения VC++
Что я пробовал:
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. Но это именно то, что мне нужно.
Кто-нибудь знает правильное решение, которое не требует аппаратной поддержки? Или я сделал что-то неправильно?
Просто используйте [код примера OSD] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd940515%28v=vs.85%29.aspx) и настройте его так, как вы хочу это. –
Я никогда не думал, что должен искать пример в аудио-образцах :) Спасибо! Я смотрю на это. – Norbert
Это то же самое решение, которое я надумал в 1. Иногда он работает, а иногда и когда медиаплеер Windows находится в полноэкранном режиме. И я не знаю, почему. – Norbert