Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#19

AW: Bildschirmfoto knipst nicht alles

  Alt 29. Mai 2018, 16:54
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 MSDN-Library durchsuchenDefWindowProc 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
  Mit Zitat antworten Zitat