您的位置:首页 > 编程语言 > C语言/C++

vc++ 动态加载位图

2015-01-07 16:07 274 查看
有两种方法:

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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: