Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Transparent bei Checkboxen und Groupboxen

  Alt 3. Nov 2005, 22:16
Hanselmann hat es so ziemlich auf den Punkt gebracht und zu fast 100% richtig erklärt. Ein was im eigentlichen Sinne ein Fenster ist (also so ziemlich jedes Control was ein Handle hat) zeichnet auf die eigene Canvas und da ist es fast unmöglich an den Untergrund heran zu kommen. Ein Control ohne Handle (Label etc.) zeichnet sich auf die Canvas des Parents und da der Parent sich vorher zeichnet hat man den Untergrund zur Verfügung und kann somit mit Transparenz spielen. Wenn man unbedingt eine Checkbox benötigt die Transparent ist kann man eignetlich auch einfach von TGraphicControl ableiten und selbst eine Checkbox mit Schrift auf die Canvas malen. Es gibt auch noch die möglichkeit mit WS_EX_TRANSPARENT bei den CreateParams das Fenster dazu zu bringen das es den Untergrund vom Parent hat. Allerdings ist dann auch noch überschreiben von Paint etc. angesagt weil die Methoden standardmäßig den Hintergrund übermalen. Und mit Doublebuffered und so kanns dann trotzdem zu problemen kommen das es nicht wirklich transparent ist weil es sich dabei nur um eine Fast-Transparenz handelt die nicht richtig funktioniert.

Eine etwas ausführlichere Erklärung warum das mit dem Transparent bei dem einen Control geht und bei dem anderen nicht gibts hier: http://www.delphipraxis.net/internal...=444167#444167
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat