首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

对话框加载图片后多余部分如何变透明了

2012-01-21 
对话框加载图片后多余部分怎么变透明了?BITMAPbmCDCdcMemdcMem.CreateCompatibleDC(pDC)m_pbmpnewCBit

对话框加载图片后多余部分怎么变透明了?
BITMAP       bm;      
    CDC       dcMem;      
    dcMem.CreateCompatibleDC(pDC);      
    m_pbmp       =       new       CBitmap();      
    m_pbmp-> LoadBitmap(IDB_BITMAP1);      
       
    CBitmap       *pBmpOld=(CBitmap       *)dcMem.SelectObject(m_pbmp);      
    m_pbmp-> GetObject(sizeof(bm),(LPVOID)&bm);      
    CRect       rcClient;      
    GetClientRect(rcClient);      
       
    pDC-> BitBlt(0,0,bm.bmWidth,      
    bm.bmHeight,      
    &dcMem,      
    0,0,            
    SRCCOPY);      
       
    dcMem.SelectObject(pBmpOld);  
    return   TRUE;
运行后踱出来的对话框部分怎么变透明了?

[解决办法]
是在OnEraseBkgnd()里面吗?多出来的部分没有绘制,当然就透明了。可以先调用基类的OnEraseBkgnd
[解决办法]
pDC-> BitBlt(0,0,bm.bmWidth,
bm.bmHeight,
&dcMem,
0,0,
SRCCOPY);
不改变图片大小,要动态改变图片大小,用StretchBlt函数,楼主可以用
pDC-> StretchBlt(0,0,rcClient.Width(),
rcClient.Height(),
&dcMem,
0,0,
bm.bmWidth,
bm.bmHeight,
SRCCOPY);
试试!!!

热点排行