Вижу единственный вариант наложения: ты наложил на гугл и изучение информации. С девяностых годов оверлеи люди рисовали и обсуждали на форумах, было бы желание изучать, да? А без него никак не получится.
Фундаментально есть 4+ мне известных пути:
1. Рисовать на контексте устройства напрямую, как, походу, ты и рисуешь. Это самый простой и самый кривой метод. Всё будет мерцать, пропадать. Всё равно придётся как-то синхронизироваться с V-blank, чтобы не выглядело ублюдски и не жрало ядра процессора брутфорсным рендерингом не в попад.
2. Чуть менее простой и более-менее работающий способ, как уже сказали: создаёшь topmost-layered-transparent окно, ставишь хуки ресайза и перемещения на окно целевого приложения, рисуешь в контекст своего окна, что душе угодно. Иногда могут быть проблемы, если кто-то в эксклюзивном режиме композитора решит, что он более topmost, чем твоё окно. В целом, самый адекватный вариант без хаков.
Хаки
3. Инжектиться в сам процесс, выковыривать момент свапа буферов или представления единственного буфера, рендерить туда в момент перед самым представлением. Это может быть GDI, GDI+, Direct2D, DirectX, OpenGL, Vulkan.
Можно также заинжектиться в композитор, если он используется. Потом точно так же откопать момент свапчейна и рендерить на уровне композитора. Там можно будет скрываться от скриншотов и ещё много чего делать.
При желании и нехилом опыте, можно очень даже стабильно и красиво всё делать.
4. Заабьюзить устаревшее API экранной лупы. Где-то были POC'и, что через неё можно вполне годный оверлей сделать. Но придётся повоевать с композитором, либо вообще его отключить. И вообще, хз, работает ли это в современных виндах. Последний раз такие хаки видел в Семёрке.