您当前的位置: 首页 >  c++

phymat.nico

暂无认证

  • 2浏览

    0关注

    1967博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

vc++ 动态加载位图

phymat.nico 发布时间:2015-01-07 16:07:37 ,浏览量:2

有两种方法: 1 静态加载,定义资源IDB_BITMAP1 BITMAP "相对路径" 2动态加载,用::LoadImage()API然后CBitmap::Attach()即可 LoadBitmap是从EXE、DLL文件中加载,不是从硬盘加载!

DrawPicture(hwnd)

{

PAINTSTRUCT ps; HDC hdc; HDC hdcmem; HBITMAP hBm; BITMAP bm; //hBm=::LoadBitmap(NULL,"D:\\Test.bmp"); //hBm=::LoadBitmap(IDB_BITMAP1); //hBm=::LoadBitmap("D:\\Test.bmp"); //HINSTANCE hInst=GetModuleHandle(this);

hBm   =  (HBITMAP)LoadImage(NULL,"d:\\Test.bmp",IMAGE_BITMAP,640,480,LR_LOADFROMFILE);  

//hBm=::LoadBitmap(GetModuleHandle(this),MAKEINTRESOURCE(IDB_BITMAP1));

//获取位图尺寸 GetObject(hBm,sizeof(BITMAP),(LPVOID)&bm);

hdc=GetDC(hwnd); hdcmem=CreateCompatibleDC(hdc); ReleaseDC(hwnd,hdc);

hdc=BeginPaint(hwnd,&ps); SelectObject(hdcmem,hBm);  //将位图选入内存设备环境中 BitBlt(hdc,180,90,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY); EndPaint(hwnd,&ps);

DeleteObject(&hBm); DeleteDC(hdcmem);

}

关注
打赏
1659628745
查看更多评论
立即登录/注册

微信扫码登录

0.0453s