La création d'un Transparent fenêtre Enfant sur le haut de la non-transparence de la Fenêtre Parent ( win 32 )

J'ai un programme qui n'est pas écrit par moi. Je n'ai pas la source et le développeur de ce programme est de développer de façon indépendante. Il me donne la HWND et HINSTANCE poignées de ce programme.
J'ai créé une fenêtre enfant SUR sa fenêtre, à l'aide de win32 api.
La première chose que j'ai besoin est de faire de cet enfant de la fenêtre de la transparence sur une certaine zone et opaque sur une autre zone(comme un Heads-up display(HUD) pour un jeu), de sorte que l'utilisateur peut voir les choses dans les deux fenêtres.

la Deuxième chose que j'ai besoin est de diriger tous les commentaires à la fenêtre parent. De ma fenêtre enfant a besoin d'aucune entrée.

je sais que WS_EX_TRANSPARENT seulement à l'enfant de dessiner à la fin comme dans les peintres de l'algorithme.
je ne peux pas utiliser WS_EX_LAYERED parce que c'est un enfant de la fenêtre.

merci d'avance 🙂

p.s.
j'ai cherché partout mais n'ai pas trouvé de solution si il y avait des questions similaires autour de l'internet.
effectivement, c'est une PALETTE comme chose pour ce jeu. je ne peux pas dessiner directement sur la fenêtre parent en raison de la complexité avec multi-threads tout pour de nombreuses autres raisons.

-- EDIT ---------------------------
Hé les gars,
je travaille toujours sur elle. essayez différentes façons avec ce que vous avez tous a suggéré.
Est-il un moyen de combiner directX et SetWindowRgn() fonction ou directx avec BitBlt() fonction. je pense que cela va faire l'affaire.
actuellement, je suis en train de tester toutes les choses comme un enfant de la fenêtre et une fenêtre superposée.

  • Son laid, mais vous pouvez créer un cadre de plus haut niveau au cours de la fenêtre et de suivi de mouvement de la fenêtre en dessous. Ensuite configurer les régions transparentes: codeguru.com/cpp/w-d/dislog/non-rectangulardialogs/article.php/...
  • Si vous faites la fenêtre transparente qui vous permettra seulement de voir la fenêtre parent. Êtes-vous essayer de faire un trou dans la fenêtre parent?
  • Eh bien, vous avez besoin d'au moins WS_EX_TRANSPARENT. Un problème que vous aurez à traiter avec, que l'auteur va effacer sa fenêtre sur le message WM_ERASEBKGND et effacer les pixels du fond que vous avez appris de la style de drapeau. De sorte que vous aurez besoin à la sous-classe de sa procédure de fenêtre et de supprimer ou de remplacer ce message. Si ce qui est dessiné avec WM_PAINT fonctionne encore bien est une question ouverte, vous aurez besoin de trouver par vous-même. Les chances sont faibles si elle contient du texte ou des graphiques avec contours lissés. Poster un commentaire, étant donné les faibles chances de succès.
  • WS_EX_TRANSPARENT est l'un des plus déroutants de la fenêtre des styles. Il ne fait pas une fenêtre transparente, elle change juste l'ordre de rendu.
  • oui et il fait des Test de collision transparent.. pas la visibilité.. hehe
InformationsquelleAutor Deamonpog | 2012-05-09