Fenster in ein HDC rendern (selbst wenn es minimiert ist)
-
Hi
gibt es die Möglichkeit eine OnPaint Nachricht an ein Fenster zu schicken, dass dieses sich neu zeichnet. Nur soll dieses sich nicht wirklich neu zeichnen, sondern sozusagen in ein HDC (besser noch CClientDC/CPaintDc) "rendern".
Wie ich darauf komme?
Nun in DirectX gibt es Funktionen. Sie rendern das "theoretisch sichtbare" Bild in ein Bitmap (oder sonstwohin), aber eben nur theoretisch. Also so eine Art "was wäre wenn";Wenn es das geben würde wäre dies vielleicht ganz geschickt.
Man schickt eine Nachricht an ein (minimiertes) Fenster und bekommt das gerenderte Fenster zurück (in einem dc, oder sonst wo)
Gibt es soetwas?
hoffnungsvolle grüße Etrin
-
Original erstellt von <Etrin>:
Man schickt eine Nachricht an ein (minimiertes) Fenster und bekommt das gerenderte Fenster zurück (in einem dc, oder sonst wo) Gibt es soetwas?Nein, nur wenn es dein eigenes Fenster ist und du die Message darin verarbeitest.
-
Hi
ich weiß nicht, aber könnte es so funktionieren:
- CClientDC vom Fenster mitels GetDC holen
- OnPaint Nachricht schicken / Invalidate aufrufenwäre es möglich, dass es so funktioniert (das Fenster ist im Hintergrund)?
Grüße Etrin
-
So wie Du schreibst, willst Du es NICHT für DirectX einsetzen, versteh ich das richtig?
Wenn ja, dann frag ich mich, wozu?
Beim PrintPreview zum Beispiel wird eine DC-Grösse angegeben, und auch wenn das Fenster kleiner oder gar nicht sichtbar ist, wird das Printlayout richtig angezeigt.
Ist doch kein Problem, du musst ja nur einen DC angeben, wo reingemalt werden darf, möglicherweise einen MemDC, und dann OnDraw aufrufen, oder als WPARAM für WM_PAINT den HDC angeben.