Pregunta

Tengo un formulario en capas con el conjunto de estilos extendido WS_EX_LAYERED.Creé un control secundario "EDITAR" usando la función API CreateWindowEx(...);el control está ahí pero no está pintado y no aparece nada en el formulario.

Sé que cuando se usa el estilo WS_EX_LAYERED en una ventana superior, el mensaje WM_PAINT ya no se envía y ninguno de los controles secundarios lo recibirá, por eso no aparece.

tenga en cuenta que la opacidad del formulario está establecida en 255 y el fondo está pintado con una imagen transparente usando la API UpdateLayeredWindow(...).

cuando coloco el mouse sobre el control EDITAR, aparece el cursor de texto y puedo copiar el texto dentro de él.

Supongo que el problema con el que tengo que lidiar es de alguna manera hacer que el control acepte la pintura del usuario.

Intenté pintar el control con la misma técnica que el formulario, y para eso creé un DC compatible a partir del formulario, pero no sé si esto es posible, mi control aún no está pintado.

¿Debería funcionar si envío WM_PRINTCLIENT para ese control?En ese caso, ¿el DC debería ser el formulario principal en capas?También intenté esto pero no pude hacerlo funcionar.

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

forma en capas: http://img6.imageshack.us/i/layeredform.png/

Mi pregunta es ¿cómo hago para que mi control de edición acepte pintura de usuario mezclada alfa?¿Cómo pinto un control combinado alfa en la forma en capas?

¿Fue útil?

Solución

Al final, he encontrado una manera de hacerlo,

Lo que tenía que hacer era obtener la imagen de mapas de bits de cada control y dibujarlo en el fondo del formulario, así que ... cuando aplicé UpdateLayeredWindow para el formulario, el formulario de bits de bits contenía todos los controles,

Todavía no sé si esta es una mejor práctica aunque

El método funciona bien, pero tengo que perfeccionarlo y agregar más controles de interacción + alfa mezclada. Por otra parte, la funcionalidad de la mano está ahí

Aquí es: http://img84.imageshack.us/img84/3172/73845647.png

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top