Discussão do artigo "Estudando a Classe CCanvas. Como Desenhar Objetos Transparentes" - página 5

 
Konstantin Seredkin:

Saudações, pessoal, vocês podem me dizer como criar o painel de informações de modo que os ícones das ofertas não fiquem sobrepostos.

Ele parece estar em primeiro plano, tudo está desenhado atrás dele, mas as ofertas estão sobrepostas.


Não vou verificar isso agora, mas é possível que o painel - um painel real - seja criado com base no CDialog. Vou verificar isso mais tarde (em um ou dois dias)...

 
Konstantin Seredkin:

Saudações, pessoal, vocês podem me dizer como criar o painel de informações de modo que os ícones das ofertas não fiquem sobrepostos na parte superior.

Ele parece estar em primeiro plano, tudo está desenhado atrás dele, mas as ofertas estão sobrepostas na parte superior.


Então, verifiquei: definitivamente, é necessário criar um painel real com base na classe CDialog .

E agora como colocar um painel sobre os ícones "Buy" e "Sell": cada painel tem um ícone "Collapse panel":

Recolher painel

Depois de recolher o painel e expandi-lo novamente, todos os objetos do painel ficarão em cima de todos os ícones anteriores. Ou seja, depois de desdobrá-lo, o painel redesenha seus objetos e eles serão os últimos criados.

 
Vladimir Karputov:

Então verifiquei: é definitivamente necessário criar um painel real com base na classe CDialog .

E agora como colocar um painel sobre os ícones "Buy" e "Sell": cada painel tem um ícone "Collapse panel":


Depois de recolher o painel e expandi-lo novamente, todos os objetos do painel ficarão em cima de todos os ícones anteriores. Ou seja, depois de desdobrado, o painel redesenha seus objetos e eles serão os últimos criados.


Então, o objeto OBJ_RECTANGLE_LABEL não pode estar em prioridade total 100% antes de todos os objetos?

Acontece que todos os outros objetos podem estar em segundo plano, mas os ícones e as barras de transação ainda têm prioridade sobre tudo. - fora de ordem

 
Konstantin Seredkin:

Então, o objeto OBJ_RECTANGLE_LABEL não pode estar em prioridade total 100% antes de todos os objetos?

Acontece que todos os outros objetos podem estar em segundo plano, mas os ícones e as barras de transação ainda têm prioridade sobre todo o resto. - sem ordem


É mais uma falta de vontade do programador de criar seu programa corretamente, levando em conta as especificidades dos volumes de renderização. O terminal não tem nada a ver com isso.

 
Konstantin Seredkin:

Então, o objeto OBJ_RECTANGLE_LABEL não pode estar em prioridade total 100% antes de todos os objetos?

Acontece que todos os outros objetos podem estar em segundo plano, mas os ícones e as barras de transação ainda têm prioridade sobre todo o resto. - fora de ordem

Leve em conta o tempo de criação dos objetos, são as prioridades, quem é o último, o que está no topo.

 
Konstantin Seredkin:

Então, o objeto OBJ_RECTANGLE_LABEL não pode estar em prioridade total 100% antes de todos os objetos?

Acontece que todos os outros objetos podem estar em segundo plano, mas os ícones e as barras de transação ainda têm prioridade sobre todo o resto. - fora de ordem

Sim, a definição da ordem de exibição não é implementada normalmente. É necessário criar jardins complicados com a recriação.

 
Andrey Khatimlianskii:

Sim, a configuração da ordem de exibição não está implementada corretamente. É necessário fazer um jardim complicado com a recriação.

Portanto, é hora de os desenvolvedores pensarem em um parâmetro adicional ao criar objetos.

 
Olá amigo, seu artigo tem um conteúdo muito interessante.
 
Finalmente encontrei um artigo em que eu poderia usar pelo menos alguma coisa.))) Usei o método descrito no artigo de misturar duas cores (superior e inferior) e obtive o efeito de transparência em uma única tela. Muito obrigado.
 
Реter Konow:
Finalmente encontrei um artigo em que eu poderia usar pelo menos alguma coisa.))) Usei o método descrito no artigo de misturar duas cores (superior e inferior) e obtive o efeito de transparência em uma única tela. Obrigado.

Isso, Peter, é muito simples.

Aqui está uma tarefa para você dominar e fixar a essência da pergunta:

- como misturar duas cores ARGB(a1,r1,g1,b1) e ARGB(a2,r2,g2,b2) em uma camada, cada uma com sua própria transparência a1 e a2?

Sem essa mescla, é impossível sobrepor corretamente objetos com suavização de serrilhado uns sobre os outros.