1. 程式人生 > >復制窗口指定位置的圖片

復制窗口指定位置的圖片

mfc 繪圖

有時候為了制作透明的控件,特別是外邊緣不規則的控件,可將控件背後的窗口圖片復制到控件中,重繪.這樣控件看起來就象透明的.

CRect theRt;//獲取控件大小(此處是自定義的控件,在控件內部執行)
GetWindowRect(&theRt);

HDC hDC = ::GetWindowDC(this->GetParent()->GetSafeHwnd());//獲取父窗口DC
HDC m_hMemDC = ::CreateCompatibleDC(hDC); //創建兼容的DC  

HBITMAP hBitmap = ::CreateCompatibleBitmap(hDC, m_nWidth, m_nHeight);//創建兼容位圖
HBITMAP hOldBitmap = (HBITMAP)::SelectObject(m_hMemDC, hBitmap);//將memBitmap選入內存DC   

::StretchBlt(m_hMemDC,0,0,theRt.Width(),theRt.Height(),
             hDC,theRt.left,202,theRt.Width(),5,SRCCOPY);


復制窗口指定位置的圖片