Drauf gekommen bin ich durch einen dummen Tippfehler
Wenn ich ein Handle für ein Fenster habe, was aber nicht wirklich existiert und dann Invalidate auf dieses Handle versuche, etwa so:
dann interessiert XP sich dafür nicht die Bohne
Aber Vista zeichnet den gesamten Desktop neu und das auch noch sehr eigenwillig
Ich habe noch nicht genau raus, welche weiteren Umstände zu jeweils welchem Verhalten führen, aber die Palette reicht von kurz flackern bis zu edit controls die teilweise unsichtbar werden, wohlgemerkt in ANDEREN Anwendungen
Reproduzieren kann ich es mit leeren Multiline edit - readonly Feldern
Wenn meine Anwendung InvalidateRect() aufruft dann werden in ALLEN anderen Anwendungen die gerade offen sind ALLE Multiline edit Felder die auf readonly stehen, keinen Inhalt und keinen Hintergrund haben (also standard weiss) teilweise transparent, selbst die Scrollbar (sofern vorhanden) verschwindet, nur die oberste Zeile bleibt weiss
Wenn ich ein Handle für ein Fenster habe, was aber nicht wirklich existiert und dann Invalidate auf dieses Handle versuche, etwa so:
Code:
HWND MyNonExistingWindow;
InvalidateRect(MyNonExistingWindow,NULL,false);
dann interessiert XP sich dafür nicht die Bohne
Aber Vista zeichnet den gesamten Desktop neu und das auch noch sehr eigenwillig
Ich habe noch nicht genau raus, welche weiteren Umstände zu jeweils welchem Verhalten führen, aber die Palette reicht von kurz flackern bis zu edit controls die teilweise unsichtbar werden, wohlgemerkt in ANDEREN Anwendungen
Reproduzieren kann ich es mit leeren Multiline edit - readonly Feldern
Wenn meine Anwendung InvalidateRect() aufruft dann werden in ALLEN anderen Anwendungen die gerade offen sind ALLE Multiline edit Felder die auf readonly stehen, keinen Inhalt und keinen Hintergrund haben (also standard weiss) teilweise transparent, selbst die Scrollbar (sofern vorhanden) verschwindet, nur die oberste Zeile bleibt weiss