wenn du kein WM_PRINT in deiner Winproc einbindest tut sich da auch nichts
Sicher? Bin etwas verwirrt von dem
MSDN Auszug hier:
Zitat:
Unlike WM_PRINT, WM_PRINTCLIENT is not processed by DefWindowProc
Das verstehe ich so, dass
WM_PRINT
auch ohne eigene Behandlung von
DefWindowProc abgearbeitet wird. Letztere sollte man ja meines Wissens nach immer Aufrufen, wenn man keine eigene Behandlung für eine Message implementiert.
Es nutzt dir nur nichts.
Es kann abgearbeitet werden nur wenn du mit dem
DC von wParam nichts tust und sogar im gleichen Kontext noch WM_PRINT verwendest dann ist es sinnlos.
Ich habe alles durch und bestimmt 3 Tage gebraucht um AnimateWindow unter
NonVcl ans laufen zu bringen.
Wenn ich dies Message nicht zu meinem eigenen Window schicke passiert gar nichts.
Mein Window ist in diesen Fall schwarz.
Delphi-Quellcode:
procedure TSkinEngine.PaintDoubleBuffer(WinHandle: hWnd; imgHdc: HDC);
var
lP: longint;
begin
if not Composited(WinHandle) then
begin
PaintBackground(WinHandle, False);
// Bei Fehler PRF_CLIENT deaktivieren
lP := PRF_CHILDREN or PRF_CLIENT or PRF_NONCLIENT or PRF_CHECKVISIBLE;
SendMessageW(WinHandle, WM_PRINT, GetPaintDC(WinHandle), lP);
end;
PaintToScreen(WinHandle, imgHdc, 0, 0, 0);
end;
gruss