Transparenter Hintergrund in OnPaint()
-
Huhu... ich hab ein Objekt wwelches von einem CWnd-Objekt geerbt hat :). Nun benutze ich die OnPaint Methode, um Text auszugeben. Ich würde nun gerne optional das ganze mit oder ohne einem Hintergrund bzw. einer Hintergrundfarbe ausgeben...
Wie mache ich das? Zur Zeit zeichne ich ein Rechteck in der Hintergrundfarbe... nur leider bringt das Nichtzeichnen nicht den gewünschten Erfolg, das ganze ist nicht transparent sondern wird dann schwarz gefärbt (also die Fläche des CWnd)...
Danke für jegliche Hilfe!
-
Vielleicht noch zur Ergänzung...
also ich rufe die BitBlt-Methode auf um ein Bild in die Fläche zu zeichnen... nur wenn das Bild kleiner als die Fläche ist würde ich gerne das dieses Rest des CWnd "durchsichtig" ist... geht das überhaupt oder zeichnet BitBlt immer die gesamte Fläche und benutzt notfalls irgendeine Hintergrundfarbe?
-
wär SetBkMode was für dich?
-
Ohh jetzt hab ich noch mehr rumgespielt und es ist transparent... aber wenn ich nun was ändere (vorallem Text), so ist der alte Text noch zu lesen bis ich mit einem anderen Fenster über das Fenster wische... dann ist nur noch der neue Text zu lesen :(...
Ich benutze die Methode Invalidate() um das Fenster zu einem Neuzeichnen zu zwingen... wieso bleibt mein alter Text denn noch in dem Fenster stehen?!
-
SetBkMode hab ich auf TRANSPARENT stehen... hörte sich passend an

-
gib mal nen code. was haste denn bisher ?
Ich versuche gerade auch mein dialogbasiertes programm in 90% durchsichtigkeit darzustellen. hat jemand nen code ?
-
Macht man normal durch SetLayeredWindowAttributes oder wie die Funktion hieß ... aber http://www.codeproject.com/w2k/QDWndTransparency.asp sollte das evt. auch beschreiben ... hab es aber nicht durchgelesen.
-
hatte ich mir auch schon angesehen.
ich hab das hier noch gefunden.
leider scheinen die project source fehlerhaft zu sein. hab 5 fehler beim kompilierenhttp://www.codeproject.com/dialog/smoothalpha.asp
aber genau sowas suche ich