Pergunta

Eu tenho uma forma em camadas com o conjunto de estilo ws_ex_layered. Eu criei uma criança "Editar" controle usando a função API CreateWindowex (...); o controle que está lá, mas não é pintado e nada aparece no formulário.

Eu sei que ao usar o estilo ws_ex_layered em uma janela superior, a mensagem WM_Paint não é enviada mais e nem os controles filho a receberão, para que isso não apareça.

Por favor, leve em conta que a opacidade do formulário é definida para 255 e o fundo é pintado com uma imagem transparente usando API UpdateLayeredWindow (...).

Quando eu passar o mouse sobre o controle de edição, o cursor de texto aparece e eu posso copiar o texto dentro dele.

Eu acho que o problema que tenho que lidar é de alguma forma, tornando o controle para aceitar a tinta do usuário.

Eu tentei pintar o controle com a mesma técnica que a forma, e para que eu criei um DC compatível da forma, mas não sei se isso é possível, meu controle ainda não é pintado.

Deve funcionar se eu enviar o wm_printclient para esse controle? Nesse caso, o DC deve ser o formulário pai em camadas? Eu também tentei isso, mas não consegui fazer funcionar.

forma normal: http://img580.Imageshack.us/i/formy.png/

forma em camadas: http://img6.imageshack.us/i/layeredform.png/

Minha pergunta é como faço o meu controle de edição Aceite a pintar alfa-blended? Como faço para pintar um controle alfa-misturado na forma em camadas?

Foi útil?

Solução

No final, encontrei uma maneira de fazer isso,

O que eu tinha que fazer era obter a imagem de bitmap de cada controle e desenhar no fundo do formulário assim ... Quando eu apliquei UpdateLayeredWindow para o formulário, o formulário Bitmap continha todos os controles,

Eu ainda não sei se esta é uma prática melhor, embora

O método funciona bem, mas eu tenho que aperfeiçoar e adicionar mais interação + controles alfanejados .. Por outro lado, a funcionalidade está lá

aqui é: http://img84.ImagesHack.us/img84/3172/73845647.png

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top