有时候为了制作透明的控件,特别是外边缘不规则的控件,可将控件背后的窗口图片复制到控件中,重绘.这样控件看起来就象透明的.
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);
原文地址:http://9233403.blog.51cto.com/9223403/1974578