Discussione sull’articolo "Studiare la classe CCanvas. Come disegnare oggetti trasparenti" - pagina 5

 
Konstantin Seredkin:

Salve ragazzi, potete dirmi come fare per rendere il pannello informativo in modo che le icone delle offerte non siano sovrapposte.

Sembra che sia in primo piano, tutto è disegnato dietro, ma le offerte sono sovrapposte.


Non lo verificherò ora, ma è possibile che il pannello - un vero pannello - sia costruito sulla base di CDialog. Lo verificherò più tardi (tra un giorno o due) ...

 
Konstantin Seredkin:

Salve ragazzi, potete dirmi come fare per rendere il pannello informativo in modo che le icone delle offerte non siano sovrapposte.

Sembra che sia in primo piano, tutto è disegnato dietro, ma le offerte sono sovrapposte.


Ho quindi controllato: sicuramente è necessario creare un vero pannello sulla base della classe CDialog .

E ora come mettere un pannello sopra le icone "Compra" e "Vendi": ogni pannello ha un'icona "Collassa pannello":

Pannello di chiusura

Dopo aver collassato il pannello e poi espanso di nuovo, tutti gli oggetti del pannello si troveranno sopra le icone precedenti. Cioè, dopo averlo aperto, il pannello ridisegna i suoi oggetti e questi saranno gli ultimi creati.

 
Vladimir Karputov:

Ho quindi controllato: è assolutamente necessario creare un vero e proprio pannello basato sulla classe CDialog .

E ora come mettere un pannello sopra le icone "Compra" e "Vendi": ogni pannello ha un'icona "Crolla pannello":


dopo aver collassato il pannello e poi espanso di nuovo, tutti gli oggetti del pannello si troveranno sopra le icone precedenti. In altre parole, dopo aver aperto il pannello, i suoi oggetti verranno ridisegnati e saranno gli ultimi creati.


Quindi l'oggetto OBJ_RECTANGLE_LABEL non può avere una priorità del 100% rispetto a tutti gli oggetti?

Risulta che tutti gli altri oggetti possono essere in secondo piano, ma le icone e le barre delle transazioni hanno comunque la priorità su tutto. - fuori ordine

 
Konstantin Seredkin:

Quindi l'oggetto OBJ_RECTANGLE_LABEL non può avere la massima priorità al 100% rispetto a tutti gli oggetti?

Risulta che tutti gli altri oggetti possono essere in secondo piano, ma le icone e le barre delle transazioni hanno comunque la priorità su tutto il resto. - nessun ordine


Si tratta piuttosto della mancata volontà del programmatore di realizzare correttamente il suo programma, tenendo conto delle specificità dei volumi di rendering. Il terminale non ha nulla a che fare con questo.

 
Konstantin Seredkin:

Quindi l'oggetto OBJ_RECTANGLE_LABEL non può avere la massima priorità al 100% rispetto a tutti gli oggetti?

Risulta che tutti gli altri oggetti possono essere in secondo piano, ma le icone e le barre delle transazioni hanno comunque la priorità su tutto il resto. - fuori ordine

Tenendo conto del tempo di creazione degli oggetti, sono le priorità, chi è l'ultimo, chi è in cima.

 
Konstantin Seredkin:

Quindi l'oggetto OBJ_RECTANGLE_LABEL non può avere la massima priorità al 100% rispetto a tutti gli oggetti?

Risulta che tutti gli altri oggetti possono essere in secondo piano, ma le icone e le barre delle transazioni hanno comunque la priorità su tutto il resto. - fuori ordine

Sì, l'impostazione dell'ordine di visualizzazione non è implementata normalmente. È necessario creare giardini complicati con la ricreazione.

 
Andrey Khatimlianskii:

Sì, l'impostazione dell'ordine di visualizzazione non è implementata correttamente. È necessario creare un giardino complicato con la ricreazione.

Pertanto, è tempo che gli sviluppatori pensino a un parametro aggiuntivo durante la creazione degli oggetti.

 
ciao amico, molto bene il tuo articolo ha un contenuto molto interessante.
 
Finalmente ho trovato un articolo che mi è stato utile almeno per qualcosa.))) Ho usato il metodo descritto nell'articolo di mescolare due colori (sopra e sotto) e ho ottenuto l'effetto di trasparenza all'interno di una tela. Grazie.
 
Реter Konow:
Finalmente ho trovato un articolo che mi è stato utile almeno per qualcosa.))) Ho usato il metodo descritto nell'articolo di mescolare due colori (sopra e sotto) e ho ottenuto l'effetto di trasparenza all'interno di una tela. Grazie.

Questo, Peter, è troppo semplice.

Ecco un compito per te che devi padroneggiare e risolvere l'essenza della domanda:

- come mescolare due colori ARGB(a1,r1,g1,b1) e ARGB(a2,r2,g2,b2) all'interno di un unico livello, ognuno dei quali ha la propria trasparenza a1 e a2?

Senza questa fusione, è impossibile sovrapporre correttamente gli oggetti con anti-alias l'uno sull'altro.