Discusión sobre el artículo "Estudiamos la clase CCanvas. Implementación de la transparencia de los objetos gráficos" - página 5

 
Konstantin Seredkin:

Saludos chicos, me podeis decir como hacer el panel de información para que los iconos de las ofertas no se superpongan encima.

Parece que está en primer plano, todo se dibuja detrás, pero las ofertas están superpuestas encima.


No voy a comprobarlo ahora, pero es posible que el panel - un panel real - esté construido sobre la base de CDialog. Lo comprobaré más tarde (en un día o dos) ...

 
Konstantin Seredkin:

Saludos chicos, me podeis decir como hacer el panel de información para que los iconos de las ofertas no se superpongan encima.

Parece que está en primer plano, todo se dibuja detrás, pero las ofertas están superpuestas encima.


Así que lo comprobé: definitivamente, es necesario hacer un panel real sobre la base de la clase CDialog .

Y ahora cómo poner un panel encima de los iconos "Comprar" y "Vender": cada panel tiene un icono "Contraer panel":

Colapsar panel

después de contraer el panel y luego expandirlo de nuevo - todos los objetos en su panel se convertirán en la parte superior de todos los iconos anteriores. Es decir, después de desplegarlo, el panel redibuja sus objetos y serán los últimos creados.

 
Vladimir Karputov:

Así que lo comprobé: definitivamente es necesario hacer un panel real basado en la clase CDialog .

Y ahora cómo poner un panel encima de los iconos "Comprar" y "Vender": cada panel tiene un icono "Contraer panel":


después de contraer el panel y luego expandirlo de nuevo - todos los objetos en su panel se convertirán en la parte superior de todos los iconos anteriores. Es decir el panel después de desplegarlo redibuja sus objetos y serán los últimos creados.


¿Así que el objeto OBJ_RECTANGLE_LABEL no puede estar en prioridad 100% antes que todos los objetos?

Resulta que todos los demás objetos pueden estar en segundo plano, pero los iconos y las barras de operaciones siguen teniendo prioridad sobre todo. - fuera de orden

 
Konstantin Seredkin:

Entonces, ¿el objeto OBJ_RECTANGLE_LABEL no puede estar en prioridad total 100% antes que todos los objetos?

Resulta que todos los demás objetos pueden estar en segundo plano, pero los iconos y las barras de transacción siguen teniendo prioridad sobre todo lo demás. - no hay orden


Es más bien la falta de voluntad del programador de hacer su programa correctamente, teniendo en cuenta las particularidades del renderizado de volúmenes. El terminal no tiene nada que ver.

 
Konstantin Seredkin:

Entonces, ¿el objeto OBJ_RECTANGLE_LABEL no puede estar en prioridad total 100% antes que todos los objetos?

Resulta que todos los demás objetos pueden estar en segundo plano, pero los iconos y las barras de transacción siguen teniendo prioridad sobre todo lo demás. - fuera de orden

Tenga en cuenta el momento de la creación de objetos, son las prioridades, que es el último, el que está en la parte superior.

 
Konstantin Seredkin:

Entonces, ¿el objeto OBJ_RECTANGLE_LABEL no puede estar en prioridad total 100% antes que todos los objetos?

Resulta que todos los demás objetos pueden estar en segundo plano, pero los iconos y las barras de transacción siguen teniendo prioridad sobre todo lo demás. - fuera de orden

Sí, la configuración del orden de visualización no se implementa normalmente. Es necesario crear jardines complicados con la recreación.

 
Andrey Khatimlianskii:

Sí, la configuración del orden de visualización no se implementa correctamente. Es necesario hacer jardín complicado con la recreación.

Por lo tanto, es hora de que los desarrolladores piensen en un parámetro adicional al crear objetos.

 
hola amigo, muy bueno tu articulo tiene un contenido muy interesante.
 
Por fin he encontrado un artículo en el que al menos me ha servido de algo))). Utilicé el método descrito en el artículo de mezclar dos colores (superior e inferior) y conseguí el efecto de transparencia dentro de un lienzo. Gracias.
 
Реter Konow:
Por fin he encontrado un artículo en el que al menos me ha servido de algo))). Utilicé el método descrito en el artículo de mezclar dos colores (superior e inferior) y conseguí el efecto de transparencia dentro de un lienzo. Gracias.

Eso, Peter, es demasiado sencillo.

Aquí tienes una tarea para que domines y fijes la esencia de la cuestión:

- ¿cómo mezclar dos colores ARGB(a1,r1,g1,b1) y ARGB(a2,r2,g2,b2) dentro de una capa, cada uno de los cuales tiene su propia transparencia a1 y a2?

Sin esta mezcla, es imposible superponer correctamente objetos suavizados.