Criando uma janela Transparent Child na parte superior da janela Parent não transparente (win 32)
Eu tenho um programa que não é escrito por mim. Eu não tenho sua fonte e o desenvolvedor desse programa está desenvolvendo independentemente. Ele me dá oHWND
eHINSTANCE
alças desse programa. Eu criei uma janela filho em sua janela, usandowin32
api. A primeira coisa que preciso é fazer com que essa janela filho tenha transparência em alguma área e opaca em outra área (como um Heads up display (HUD) para um jogo), para que o usuário possa ver as coisas em ambas as janelas.
A segunda coisa que eu preciso é direcionar toda a entrada para a janela pai. Minha janela filho não precisa de entrada.
Eu sei dissoWS_EX_TRANSPARENT
só faz a criança desenhar no final como no algoritmo dos pintores. eu não posso usarWS_EX_LAYERED
porque é uma janela filho.
desde já, obrigado :)
p.s. Eu olhei em todos os lugares, mas não encontrei qualquer solução, embora houvesse perguntas semelhantes em torno da internet. na verdade, esse é um lance de HUD para esse jogo. Eu não posso desenhar diretamente na janela pai por causa da complexidade com multi-threads quaisquer outras razões.
- EDIT --------------------------- Ei pessoal, eu ainda estou trabalhando nisso. tentando maneiras diferentes com o que todos vocês sugeriram. Existe uma maneira de combinardirectX
eSetWindowRgn()
função oudirectx
comBitBlt()
função. Eu acho que isso fará o truque. Atualmente eu estou testando todas as coisas como uma janela filho e uma janela em camadas.