Estoy tratando de dibujar rectángulos semitransparentes en un HWND invisible. Sin embargo, borrar la ventana con ID2D1HwndRenderTarget :: Clear solo hace que toda la ventana se vuelva negra, así que cuando dibujo rectángulos en la parte superior, se ven semi-negros.Cómo borro un destino de renderizado Direct2D a totalmente transparente
Si no borro() y no dibujo, entonces la ventana es invisible, como debería ser. Clear() es el culpable aquí; sin embargo, si no lo uso, la pintura se estropea bastante.
Aquí está el código que estoy usando en mi WindowProc:
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();
Gracias de antemano!
Nota: He tratado de despejar con 0.0 como la opacidad, con exactamente el mismo resultado. – Saul
¿Puedes pegar una imagen del efecto transparente? Solo quiero saber cómo funciona. – zdd