Sto provando a disegnare rettangoli semitrasparenti su un HWND invisibile. Tuttavia, cancellare la finestra con ID2D1HwndRenderTarget :: Clear rende l'intera finestra nera, quindi quando disegno i rettangoli in cima, sembrano semi-neri.Come cancellare una destinazione di rendering Direct2D completamente trasparente
Se non si cancella() e non si disegna, la finestra è invisibile, come dovrebbe essere. Clear() è il colpevole qui; tuttavia, se non lo uso, la pittura incasina molto male.
Ecco il codice che sto usando nella mia 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();
Grazie in anticipo!
Nota: ho cercato di compensazione con 0.0 come l'opacità, con esattamente lo stesso risultato. – Saul
È possibile incollare un'immagine dell'effetto trasparente? Voglio solo sapere come funziona. – zdd