pschilling
Erfahrenes Mitglied
Hallo,
eine knifflige Aufgabe für GUI-Freaks.
Ich habe für einen Kunden eine von Grund auf konfigurierbare Applikation geschrieben.
Dabei hatte ich folgendes Problem.
Damit die Dialoge auch gut aussehen, sollten die CStatics ja Transparent sein, da der Hintergrund beliebigen Ursprungs sein kann.
Das mach ich mit WM_CTLCOLOR...
Sieht auch super aus und t.
Jetzt bietet die App aber auch an, dass mann auf Tastendruck augenblicklich die Sprache wechselt, so dass ich auch den Text der CStatics zur Laufzeit ändern muss. Dabei hat mir die Transparenz sehr zu schaffen gemacht.
Meine Probleme hatt ich damit, das die transparenten CStatic Controls den alten Fensterinhalt nicht gelöscht haben. Habe so ziemlich alle Varianten von ShowWindow über UpdateWindow() , Invalidate(), SetWindowPos... u.s.w. ausprobiert, aber es wollte sich einfach nicht sauber neu zeichnen !
Ich habe mal für VS2005 hier
http://www.karena-fotografie.de/images/private/peter/dlg.rar
ein sehr schmales Demoprojekt (Dialogbasierend) hinterlegt, welches das Problem verdeutlicht.
Ich habe zwar schon eine funktionierende Lösung gefunden, bin aber noch nicht allzu zufrieden mit dieser.
Übrigens habe ich das Programm für Windows CE 5.0 entwickelt. Dort bin ich ja gezwungen, die Dialoge immer übereinander zu zeichnen, weil nur 240x320 pixel da sind.
Bei Mehreren Transparenten CStatics kommen die wildesten zeicheneffekte bei rum
Vielleicht hat ja einer ne gute Idee oder hat genau dies schon mal gemacht.
Bin für jeden Tipp dankbar !!
Peter
eine knifflige Aufgabe für GUI-Freaks.
Ich habe für einen Kunden eine von Grund auf konfigurierbare Applikation geschrieben.
Dabei hatte ich folgendes Problem.
Damit die Dialoge auch gut aussehen, sollten die CStatics ja Transparent sein, da der Hintergrund beliebigen Ursprungs sein kann.
Das mach ich mit WM_CTLCOLOR...
Sieht auch super aus und t.
Jetzt bietet die App aber auch an, dass mann auf Tastendruck augenblicklich die Sprache wechselt, so dass ich auch den Text der CStatics zur Laufzeit ändern muss. Dabei hat mir die Transparenz sehr zu schaffen gemacht.
Meine Probleme hatt ich damit, das die transparenten CStatic Controls den alten Fensterinhalt nicht gelöscht haben. Habe so ziemlich alle Varianten von ShowWindow über UpdateWindow() , Invalidate(), SetWindowPos... u.s.w. ausprobiert, aber es wollte sich einfach nicht sauber neu zeichnen !
Ich habe mal für VS2005 hier
http://www.karena-fotografie.de/images/private/peter/dlg.rar
ein sehr schmales Demoprojekt (Dialogbasierend) hinterlegt, welches das Problem verdeutlicht.
Ich habe zwar schon eine funktionierende Lösung gefunden, bin aber noch nicht allzu zufrieden mit dieser.
Übrigens habe ich das Programm für Windows CE 5.0 entwickelt. Dort bin ich ja gezwungen, die Dialoge immer übereinander zu zeichnen, weil nur 240x320 pixel da sind.
Bei Mehreren Transparenten CStatics kommen die wildesten zeicheneffekte bei rum

Vielleicht hat ja einer ne gute Idee oder hat genau dies schon mal gemacht.
Bin für jeden Tipp dankbar !!
Peter