MFC使用API函式GdiAlphaBlend繪製半透明控制元件
阿新 • • 發佈:2018-12-30
示例程式碼如下
介面效果如下if (m_hBrushBackground) { HDC back; CRect rcx = rcc; back = ::CreateCompatibleDC(dc); HBITMAP bmpx; bmpx = ::CreateCompatibleBitmap(dc, rcx.Width(), rcx.Height()); HBITMAP ob = (HBITMAP)::SelectObject(back, bmpx); POINT pt2; ::SetBrushOrgEx(back, m_ptBackBrushOrig.x, m_ptBackBrushOrig.y, &pt2); ::FillRect(back, &rcc, m_hBrushBackground); BLENDFUNCTION bf; bf.BlendOp = AC_SRC_OVER; bf.BlendFlags = 0; bf.SourceConstantAlpha = 80; bf.AlphaFormat = 0; GdiAlphaBlend(memDC, 0, 0, rcx.Width(), rcx.Height(), back, 0, 0, rcx.Width(), rcx.Height(), bf); ::SelectObject(back, ob); ::DeleteObject(bmpx); ::DeleteDC(back); }