nim_duilib/examples/multi_browser/dragdrop/bitmap_control.cpp
jiajia_deng 4933d1f2bc Remove dependency on shared
Signed-off-by: jiajia_deng <2894220@gmail.com>
2019-09-20 16:27:58 +08:00

32 lines
784 B
C++

#include "bitmap_control.h"
using namespace ui;
BitmapControl::BitmapControl()
{
bitmap_ = NULL;
}
void BitmapControl::Paint(ui::IRenderContext* pRender, const ui::UiRect& rcPaint)
{
if (!::IntersectRect(&m_rcPaint, &rcPaint, &m_rcItem)) return;
__super::Paint(pRender, rcPaint);
if (NULL == bitmap_)
return;
HDC hCloneDC = ::CreateCompatibleDC(pRender->GetDC());
HBITMAP hOldBitmap = (HBITMAP) ::SelectObject(hCloneDC, bitmap_);
pRender->AlphaBlend(m_rcItem.left, m_rcItem.top, m_rcItem.right - m_rcItem.left, m_rcItem.bottom - m_rcItem.top, hCloneDC,
0, 0, m_rcItem.right - m_rcItem.left, m_rcItem.bottom - m_rcItem.top);
::SelectObject(hCloneDC, hOldBitmap);
::DeleteDC(hCloneDC);
}
void BitmapControl::SetBitmapImage(HBITMAP bitmap)
{
bitmap_ = bitmap;
}