Diskussion zum Artikel "Die Betrachtung der CCanvas-Klasse. Wie man transparente Objekte zeichnet" - Seite 5

 
Konstantin Seredkin:

Guten Tag, Leute, könnt ihr mir sagen, wie ich das Informationsfeld so gestalten kann, dass die Symbole der Angebote nicht überlagert werden.

Es scheint im Vordergrund zu sein, alles ist dahinter gezeichnet, aber die Geschäfte sind oben überlagert.


Ich werde es jetzt nicht überprüfen, aber es ist möglich, dass das Panel - ein echtes Panel - auf der Basis von CDialog aufgebaut ist. Ich werde es später (in ein oder zwei Tagen) überprüfen ...

 
Konstantin Seredkin:

Guten Tag, Leute, könnt ihr mir sagen, wie ich das Informationsfeld so gestalten kann, dass die Symbole der Angebote nicht überlagert werden.

Es scheint im Vordergrund zu sein, alles ist dahinter gezeichnet, aber die Geschäfte sind oben überlagert.


Also habe ich es überprüft: es ist definitiv notwendig, ein echtes Panel auf der Basis der CDialog-Klasse zu erstellen.

Und nun, wie man ein Panel über die "Kaufen"- und "Verkaufen"-Symbole legt: jedes Panel hat ein Symbol "Panel zuklappen":

Panel zusammenklappen

Nachdem Sie das Panel zusammengeklappt und dann wieder aufgeklappt haben, werden alle Objekte in Ihrem Panel über allen vorherigen Icons angezeigt. Das heißt, nach dem Ausklappen werden die Objekte des Panels neu gezeichnet, und es sind die zuletzt erstellten Objekte.

 
Vladimir Karputov:

Also habe ich überprüft: es ist definitiv notwendig, ein echtes Panel auf Basis der CDialog-Klasse zu machen.

Und nun, wie man ein Panel über die "Kaufen"- und "Verkaufen"-Symbole legt: jedes Panel hat ein "Panel zuklappen"-Symbol:


Nachdem Sie das Panel zusammengeklappt und dann wieder aufgeklappt haben, werden alle Objekte in Ihrem Panel über allen vorherigen Icons angezeigt. Das heißt, dass das Panel nach dem Aufklappen seine Objekte neu zeichnet und diese die zuletzt erstellten sind.


Das Objekt OBJ_RECTANGLE_LABEL kann also nicht in voller Priorität 100% vor allen anderen Objekten stehen?

Es stellt sich heraus, dass alle anderen Objekte im Hintergrund sein können, aber Icons und Transaktionsleisten haben immer noch Vorrang vor allem. - nicht in Ordnung

 
Konstantin Seredkin:

Das Objekt OBJ_RECTANGLE_LABEL kann also nicht zu 100% vor allen anderen Objekten Priorität haben?

Es stellt sich heraus, dass alle anderen Objekte im Hintergrund sein können, aber Icons und Transaktionsleisten haben immer noch Vorrang vor allem anderen. - keine Reihenfolge


Es handelt sich eher um den Unwillen des Programmierers, sein Programm korrekt zu erstellen und dabei die Besonderheiten des Rendering-Volumens zu berücksichtigen. Das Terminal hat damit nichts zu tun.

 
Konstantin Seredkin:

Das Objekt OBJ_RECTANGLE_LABEL kann also nicht zu 100% vor allen anderen Objekten Priorität haben?

Es stellt sich heraus, dass alle anderen Objekte im Hintergrund sein können, aber Icons und Transaktionsleisten haben immer noch Vorrang vor allem anderen. - außer der Reihe

Berücksichtigen Sie den Zeitpunkt der Erstellung von Objekten, es ist die Prioritäten, wer ist die letzte, die an der Spitze.

 
Konstantin Seredkin:

Das Objekt OBJ_RECTANGLE_LABEL kann also nicht zu 100% vor allen anderen Objekten Priorität haben?

Es stellt sich heraus, dass alle anderen Objekte im Hintergrund sein können, aber Icons und Transaktionsleisten haben immer noch Vorrang vor allem anderen. - außer Betrieb

Ja, die Einstellung der Anzeigereihenfolge ist nicht normal implementiert. Es ist notwendig, komplizierte Gärten mit Wiederherstellung zu erstellen.

 
Andrey Khatimlianskii:

Ja, die Einstellung der Anzeigereihenfolge ist nicht richtig implementiert. Es ist notwendig, um komplizierte Garten mit neu zu machen.

Daher ist es Zeit für die Entwickler, über einen zusätzlichen Parameter bei der Erstellung von Objekten zu denken.

 
Hallo Freund, sehr gut Ihr Artikel hat einen sehr interessanten Inhalt.
 
Endlich habe ich einen Artikel gefunden, mit dem ich wenigstens etwas anfangen kann.))) Ich habe die im Artikel beschriebene Methode verwendet, zwei Farben (oben und unten) zu mischen und den Effekt der Transparenz innerhalb einer Leinwand zu erzielen. Vielen Dank an Sie.
 
Реter Konow:
Endlich habe ich einen Artikel gefunden, mit dem ich wenigstens etwas anfangen kann.))) Ich habe die im Artikel beschriebene Methode verwendet, zwei Farben (oben und unten) zu mischen und den Effekt der Transparenz innerhalb einer Leinwand zu erzielen. Vielen Dank dafür.

Das, Peter, ist zu einfach.

Hier ist eine Aufgabe für dich, die du meistern musst, um das Wesentliche der Frage zu klären:

- Wie kann man zwei Farben ARGB(a1,r1,g1,b1) und ARGB(a2,r2,g2,b2) in einer Ebene mischen, von denen jede ihre eigene Transparenz a1 und a2 hat?

Ohne diese Überblendung ist es nicht möglich, Anti-Aliasing-Objekte korrekt übereinander zu legen.