J’essaie de créer une simple fenêtre transparente dans laquelle je peux dessiner avec Direct2D.
Jusqu’ici ce que j’ai fait:
Je ne sais tout simplement pas comment faire de la fenêtre transparente. Si vous pouvez signaler mon erreur, je serais obligé
Je ne pense pas que ce soit possible avec DirectX. Cependant, le GDI fonctionne.
Jetez un oeil à la source ici pour voir comment cela se passe: http://pastebin.com/NJf8wi2V
Dans la source, vous pouvez voir qu’il existe une option pour essayer d’utiliser directx / opengl. Cependant, comme vous pouvez le constater en cours d’exécution, ils ne fonctionnent pas.
Voici comment cela est réalisable en utilisant l’API DirectComposition
Russe: http://www.oszone.net/25395/
Anglais: https://msdn.microsoft.com/magazine/dn745861.aspx
Fondamentalement, ce que fait l’auteur est
Définit le style étendu WS_EX_NOREDIRECTIONBITMAP pour supprimer le bitmap de redirection de DWM. Le contenu de la fenêtre est maintenant vide.
Crée le périphérique DirectComposition
Crée Composition SwapChain (et non hwnd swapchain)
Place un visuel avec SwapChain en tant que contenu en tant que visuel racine.
Restitue dans SwapChain à l’aide de l’API Direct2D.
Cela fonctionne également bien avec WS_EX_TRANSPARENT | WS_EX_LAYERED | WS_EX_TOPMOST
WS_EX_TRANSPARENT | WS_EX_LAYERED | WS_EX_TOPMOST
WS_EX_TRANSPARENT | WS_EX_LAYERED | WS_EX_TOPMOST
pour la création de superpositions transparentes aux événements.