我有我稱之爲DwmExtendFrameIntoClientArea()
, 窗口主機其他子窗口的窗口,我用的Direct2D畫上子窗口之一, 當一個位圖加載其上有黑色區域,該區域變得模糊。 我希望清除子窗口中的所有內容並在WM_PAINT
上再次繪製它,但似乎無法清除內容。在窗口後面模糊清除窗口中的內容(DWM)
我曾嘗試使用
m_pRenderTarget->Clear(D2D1::ColorF(D2D1::ColorF::Black))
這使得子窗口區域的黑色來清除它,它會清除所有以前的圖紙,但沒有透明度。
我試圖繪製位圖這僅僅是在客戶區
m_pRenderTarget->DrawBitmap(m_pBkgrnd,D2D1::Rect<float> (0.f,0.f,GetWidth(),GetHeight()))
這使得無論是面前有出現,在黑色的黑條。
試圖在整個子窗口畫一個黑色區域的老GDI方式,
RECT rc; GetClientRect(m_hwnd, &rc); HBRUSH brush = CreateSolidBrush(RGB(0,0,0)); HDC hc=GetDC(m_hwnd); FillRect(hc, &rc, brush); ReleaseDC(m_hwnd,hc); DeleteObject(brush);
不工作。
但是,如果我不這樣做,我嘗試調整主窗口的大小,它的工作原理是正確的,即以前的繪畫消失。
是否有任何API調用或任何方式手動清除窗口,然後再次繪製它?