我正在嘗試在隱形HWND上繪製半透明矩形。但是,使用ID2D1HwndRenderTarget :: Clear清除窗口只會使整個窗口變黑,所以當我在頂部繪製矩形時,它們看起來是半黑色的。如何清除Direct2D渲染目標以完全透明
如果我不清除()並不繪製,那麼該窗口是不可見的,因爲它應該是。 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 2010-04-08 22:25:01
您可以粘貼透明效果的圖片嗎?我只是想知道它是如何工作的。 – zdd 2012-11-23 02:04:38