Ich versuche zeichnen semi-transparente Rechtecke auf einem unsichtbaren HWND. Wenn Sie jedoch das Fenster mit ID2D1HwndRenderTarget :: Clear löschen, wird das gesamte Fenster schwarz. Wenn ich also oben Rechtecke zeichne, sehen sie halbschwarz aus.Wie lösche ich ein Direct2D Renderziel vollständig transparent
Wenn ich nicht Clear() und nicht zeichnen, dann ist das Fenster unsichtbar, wie es sein sollte. Clear() ist der Schuldige hier; aber wenn ich es nicht benutze, vermasselt sich die Malerei ziemlich schlecht.
Hier ist der Code, den ich in meinem WindowProc bin mit:
case WM_PAINT:
// Begin drawing
pRenderTarget->BeginDraw();
pRenderTarget->SetTransform(D2D1::Matrix3x2F::Identity());
// Clear the window
pRenderTarget->Clear();
// Paint the panel and its children
D2DSurface()->StartPainting();
{
D2DSurface()->PaintTraverse(panel);
}
D2DSurface()->FinishPainting();
// Finish drawing
HRESULT hr = plat->pRenderTarget->EndDraw();
Vielen Dank im Voraus!
Hinweis: Ich habe Clearing versucht, mit 0,0 als die Opazität, mit genau dem gleichen Ergebnis. – Saul
Können Sie ein Bild des transparenten Effekts einfügen? Ich will nur wissen, wie es funktioniert. – zdd