15,978
社区成员
发帖
与我相关
我的任务
分享
else
{
CBitmap mMapGND;
mMapGND.LoadBitmap(IDB_BITMAP1);
BITMAP bmMapGND;
GetObject((HBITMAP)mMapGND,sizeof(BITMAP),(PSTR)&bmMapGND);
BLENDFUNCTION blend;
memset( &blend, 0, sizeof( blend) );
blend.BlendOp= AC_SRC_OVER;
blend.SourceConstantAlpha = 210;
HDC bitmapFORGND_Hdc = CreateCompatibleDC(NULL);
HBITMAP hOldBitmapFORGND = (HBITMAP)SelectObject(bitmapFORGND_Hdc,(HBITMAP)mMapGND);
CDC* pFORGND = CDC::FromHandle(bitmapFORGND_Hdc);
dc.AlphaBlend(0,0,400,400,pFORGND,0,0,bmMapGND.bmWidth,bmMapGND.bmHeight, blend);
SelectObject(pFORGND->m_hDC,hOldBitmapFORGND);
//CDialog::OnPaint();
}
BOOL CtranslucenceFrameDlg::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
BLENDFUNCTION blend;
memset( &blend, 0, sizeof( blend) );
blend.BlendOp= AC_SRC_OVER;
blend.SourceConstantAlpha = 210;
CRect rect;
GetClientRect(rect);
HDC hMemDC = ::CreateCompatibleDC(NULL);
HBITMAP hMemBitmap = ::CreateCompatibleBitmap(::GetDC(NULL),rect.Width(),rect.Height());
HBITMAP old = (HBITMAP)SelectObject(hMemDC,hMemBitmap);
CDC* pFOR = CDC::FromHandle(hMemDC);
pFOR->FillSolidRect(rect,RGB(255,0,255));
//pDC->BitBlt(0,0,rect.Width(),rect.Height(),pFOR,0,0,SRCCOPY);
pDC->AlphaBlend(0,0,rect.Width(),rect.Height(),pFOR,0,0,rect.Width(),rect.Height(),blend);
SelectObject(hMemDC,old);
return 1;//CDialog::OnEraseBkgnd(pDC);
}