WIN32工程加载一张BMP格式位图

win32工程加载一张BMP格式位图

环境:win10, x64,vs2015_pro版
创建一个win32 的工程,可以是 WIN32工程加载一张BMP格式位图_第1张图片空项目,也可以不是。我创建的不是空项目,所以很多代码自动生成了,主要是修改一下WM_PAINT消息部分的代码。
具体怎么创建工程,百度直接就可以出来
直接上代码:

#define WINDOW_WIDTH 600
#define WINDOW_HEIGHT 300

case WM_PAINT:
        {
            PAINTSTRUCT ps;
            HDC hdc = BeginPaint(hWnd, &ps);
            // TODO: 在此处添加使用 hdc 的任何绘图代码...

HBITMAP hbmp;// 位图绘制对象句柄
HDC mdc = CreateCompatibleDC(hdc); // 创建兼容的缓存DC对象

// 加载图片到位图绘制对象hbmp中
hbmp = (HBITMAP)LoadImage(
NULL, // 模块实例句柄
"K:\\dcm_picture\\111.bmp", // 位图路径。 注意双斜杠,单斜杠表示转义,此时文件会加载不成功!!!
IMAGE_BITMAP, // 图片类型
WINDOW_WIDTH, // 指定图片宽
WINDOW_HEIGHT, // 指定图片高
LR_LOADFROMFILE // 从路径处加载图片
);

// 缓存DC(mdc)选择位图绘制对象(可以理解为将图片保存到mdc中)
SelectObject(mdc, hbmp);

// 将缓存DC中的位图复制到窗口DC上
BitBlt(
hdc, // 目的DC
0, 0, // 目的DC的 x,y 坐标
WINDOW_WIDTH, // 要粘贴的图片的宽
WINDOW_HEIGHT, // 要粘贴的图片的高
mdc, // 缓存DC
0, 0, // 缓存DC的x,y坐标
SRCCOPY // 粘贴方式
);
DeleteObject(hbmp);
DeleteDC(mdc);
            EndPaint(hWnd, &ps);
        }

效果图如下: WIN32工程加载一张BMP格式位图_第2张图片

注意:
1,这个程序我测试了,只能显示BMP格式的文件,像PNG格式,DCM格式等格式显示不出来;(不知道是不是参数IMAGE_BITMAP的关系,其他参数我没有测试,如果有测试了,可以留言一下)
2,找到一篇讲的很详细的GDI加载位图的帖子,给大家一起分享
https://lellansin.wordpress.com/2014/07/31/windows-gdi-%E6%95%99%E7%A8%8B%EF%BC%88%E5%85%AD%EF%BC%89-dc%E4%B8%8E%E5%8A%A0%E8%BD%BD%E4%BD%8D%E5%9B%BE/点击打开链接



你可能感兴趣的:(C++,图像处理,c++,加载图片,LoadImage,显示图片,位图)