보이지 않는 HWND에 반투명 사각형을 그려야합니다. 그러나 ID2D1HwndRenderTarget :: Clear로 창을 지우는 것은 전체 창을 검은 색으로 만들므로 맨 위에 직사각형을 그릴 때 반 검정으로 보입니다.Direct2D 렌더링 대상을 완전히 투명하게 지우는 방법
Clear()를 사용하지 않고 그리지 않으면 창이 보이지 않습니다. Clear()는 여기에서 범인이다; 그러나 내가 그것을 사용하지 않으면 회화가 심하게 엉망이된다.
여기 내 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();
감사합니다!
참고 : 나는 0.0 등으로 삭제 시도 불투명도, 정확히 같은 결과. – Saul
투명한 효과 그림을 붙여 넣을 수 있습니까? 나는 그것이 어떻게 작동하는지 알고 싶다. – zdd