复制窗口指定位置的图片
有时候为了制作透明的控件,特别是外边缘不规则的控件,可将控件背后的窗口图片复制到控件中,重绘.这样控件看起来就象透明的.
郾城网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联从2013年开始到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。
.h文件中声明变量 CMemoryDC m_EmptyMemDC;//空白内存DC(另外封装的CDC的类) CBitmap m_BmpBackground; void CLabel::CopyBackground(CDC * pDC) { CRect theRt;//获取控件大小(此处是自定义的控件,在控件内部执行) GetWindowRect(&theRt); CPoint pt(theRt.left, theRt.top); ::ScreenToClient(GetParent()->m_hWnd,&pt); CClientDC clientDC(this->GetParent()); //创建兼容位图 m_BmpBackground.CreateCompatibleBitmap(&clientDC, m_rect.Width(), m_rect.Height()); HBITMAP hOldBitmap = (HBITMAP)m_EmptyMemDC.SelectObject(&m_BmpBackground); ::StretchBlt(m_EmptyMemDC, 0, 0, theRt.Width(), theRt.Height(), clientDC.m_hDC, pt.x, pt.y, theRt.Width(), theRt.Height(), SRCCOPY); pDC->BitBlt(0, 0, m_rect.Width(), m_rect.Height(), &m_EmptyMemDC, 0, 0, SRCCOPY); m_EmptyMemDC.SelectObject(hOldBitmap); m_BmpBackground.DeleteObject(); }
当前题目:复制窗口指定位置的图片
分享链接:http://scyanting.com/article/iipiss.html