Zitat von
Christian Seehase:
Moin Matti,
schau Dir doch mal die Funktion
GetDCEx an.
Bei mir bringt die im WMNCPAINT-Event zwar immer 0 zurück (obwohl die übergebenen Werte eigentlich stimmen sollten), aber vielleicht funktioniert es ja bei Dir.
(GetLastError meldet mir auch "Der Vorgang wurde erfolgreich durchgeführt"
)
Mein Aufruf:
hdc := GetDCEx(self.Handle,msg.RGN,DCX_WINDOW or DCX_INTERSECTRGN);
Jupp, hab ich schon. Du bekommst ein gültigen DCdurch das hinzufügen des Flags
DCX_USERSTYLE.
Delphi-Quellcode:
DCX_USERSTYLE = $10000;
// oder war es $100000 *grübel*
//...
hdc := GetDCEx(
Handle, msg.RGN, DCX_WINDOW
or DCX_INTERSECTRGN
or USERSTYLE);
// zur sicherheit mach ich dann noch:
if hdc = 0
then hdc := GetWindowDC(
Handle);
Das Problem ist das der Rahmen zwar gezeichnet wird aber beim ändern der Grösse des Fensters nicht exakt gezeichnet wird.