EVC 怎样从SD卡加载位图,LoadImage没用,因为没有LR_LOADFROMFILE

xiaolu192   2007-12-29 10:10 楼主
基本如题。
如果要从外设中如SD卡中加载位图文件,应该用什么方法。我试了,::LoadBitmap 和::LoadImage()都没成功,后者在VC下
能成功,因为可以设置标志LR_LOADFROMFILE,可是在EVC下没有定义这个属性,应该怎么处理呢???

回复评论 (1)

试试这个:
        CBitmap hbmp;
        HBITMAP hbitmap;
        CStatic *pStaic;

        pStaic=(CStatic*)GetDlgItem(IDC_showbmp);//控件ID
        hbitmap = SHLoadDIBitmap(MapPath);//要加载的bmp路径
       
        hbmp.Attach(hbitmap);
        BITMAP bm;
        hbmp.GetBitmap(&bm);
        CDC dcMem;
        dcMem.CreateCompatibleDC(GetDC());
        CBitmap *poldBitmap=(CBitmap*)dcMem.SelectObject(hbmp);
        CRect lRect;
        pStaic->GetClientRect(&lRect);
        pStaic->GetDC()->StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(),
                &dcMem,0 ,0,bm.bmWidth,bm.bmHeight,WHITENESS);
        pStaic->GetDC()->StretchBlt(lRect.left ,lRect.top ,lRect.Width(),lRect.Height(),
                &dcMem,0 ,0,bm.bmWidth,bm.bmHeight,SRCCOPY);
        dcMem.SelectObject(&poldBitmap);
       
        hbitmap->unused;
        DeleteObject(hbitmap);
        hbmp.Detach();
        hbmp.DeleteObject();
点赞  2007-12-29 10:15
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复