Pergunta

Eu estou cuidando de uma maneira de AlphaBlend um formulário filho, se possível usando janelas em camadas, pois haverá controles interativos por trás dele.

O problema é que tenho um componente em um TForm regular que tintas múltiplas camadas visuais (desenhos, fotos ...). Em algum momento eu preciso instanciar um controle editor neste formulário (no local), esse controle vai envolver uma variedade de controles de entrada padrão fora do meu controle (caixa de edição, caixa de seleção, etc.), no entanto gostaria de sobreposição as camadas em frente da camada a ser editadas usando mistura alfa (e WS_EX_TRANSPARENT para torná-la de clique).

A primeira vez que pensou em usar formulários filho para que (TForms margens pai para o componente), e que funciona bem, até o ponto onde o AlphaBlended TForm não é alphablended em tudo, mas fica opaco assim que parented .. .

Então eu tentei unparent a forma alphablended, configurá-lo para fsStayOnTop, e reagindo aos acontecimentos relevantes, mantê-lo na frente do componente na tela, que funciona, mas isso não é uma solução verdadeiramente satisfatória: o alphablended forma StayOnTop também está na frente de outras formas modais e não modais do aplicativo, o usuário deve decidir movê-los na frente do componente ...

Assim, quaisquer outras ideias sobre uma maneira de ter um formulário filho ser alphablended? (Ou se comportam como é)

Foi útil?

Solução

De acordo com MSDN você está fora de sorte, como WS_EX_LAYERED não pode ser usado para janelas filho .

Talvez você pudesse esconder todas as formas de edição quando seu / formulário perde o foco, que, pelo menos, mantê-los de estar no topo de outras janelas. Ainda assim, é insatisfatória ...

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