windows程序设计 加载位图图片
现在网上随便下个jpg图片,用windows自带的画图工具打开,点击画图工具左上角,文件->另存为->选择bmp,点击保存,保存好后,就得到一张位图了。

得到的位图,位图的内存比原图片jpg占用内存大。

将位图添加到vs2012项目里面。鼠标右键项目名称->添加->资源。

选择Bitmap->导入,选择刚才你做好的*.bmp位图图片。

导入的位图,在项目的资源中可以看到。

在resource.h资源头文件中会突出一个宏定义,我的是IDB_BITMAP7。

然后在代码中加载位图。然后与兼容dc绑定,在把兼容dc上的内容显示到窗口dc上面。下面代码。
LRESULT CALLBACK fnWndProc(HWND hWnd, UINT mSg, WPARAM wParam, LPARAM lParam){
    static HBITMAP hBitmap;
    static int cxClient, cyClient;
    HDC hdc, hdcMem;
    HINSTANCE hInstance;
    PAINTSTRUCT ps;
    switch(mSg){
    case WM_CREATE:
        hInstance = ((LPCREATESTRUCT)lParam)->hInstance;//获取窗口实例句柄
        hBitmap = LoadBitmap(hInstance, MAKEINTRESOURCE(IDB_BITMAP7));//加载位图
        break;
    case WM_SIZE://窗口大小改变的消息
        cxClient = LOWORD(lParam);//窗口显示宽度
        cyClient = HIWORD(lParam);//窗口显示高度
        break;
    case WM_PAINT:
        hdc = BeginPaint(hWnd, &ps);
        hdcMem = (HDC)CreateCompatibleDC(hdc);//创建兼容性DC
        SelectObject(hdcMem, hBitmap);//将位图和兼容性DC绑定
        BitBlt(hdc, , , cxClient, cyClient, hdcMem, , , SRCCOPY);//将兼容DC的内容复制到hdc上面,也就是显示的窗口上。
        DeleteObject(hdcMem);//删除兼容性DC
        EndPaint(hWnd, &ps);
        break;
    case WM_DESTROY:
        DeleteObject(hBitmap);//删除位图
        PostQuitMessage();
        break;
    }
    return DefWindowProc(hWnd, mSg, wParam, lParam);
}
代码运行结果

窗口最大化

windows程序设计 加载位图图片的更多相关文章
- Direct2D开发:从资源加载位图
		转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 Direct2D使用Windows图像处理组件 (WIC) 来加载位图.从文件加载位图的方法很简单,而且网上的教 ... 
- SharpDX之Direct2D教程II——加载位图文件和保存位图文件
		本系列文章目录: SharpDX之Direct2D教程I——简单示例和Color(颜色) 绘制位图是绘制操作的不可缺少的一部分.在Direct2D中绘制位图,必须先利用WIC组件将位图加载到内存中,再 ... 
- [Direct2D开发] 从资源加载位图
		转载请注明出处:http://www.cnblogs.com/Ray1024 一.概述 Direct2D使用Windows图像处理组件 (WIC) 来加载位图.从文件加载位图的方法很简单,而且网上的教 ... 
- Fresco 使用笔记(一):加载gif图片并播放
		项目总结 --------------------------------------------------------------------- 前言: 项目中图文混合使用的太多太多了,但是绝大部 ... 
- 【python游戏编程之旅】第四篇---pygame中加载位图与常用的数学函数。
		本系列博客介绍以python+pygame库进行小游戏的开发.有写的不对之处还望各位海涵. 在上一篇博客中,我们学习了pygame事件与设备轮询.http://www.cnblogs.com/msxh ... 
- 图片_ _Android有效解决加载大图片时内存溢出的问题 2
		Android有效解决加载大图片时内存溢出的问题 博客分类: Android Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或 setImageResource或 Bit ... 
- android95  缩放加载大图片
		MainActivity: package com.itheima.loadimage; import android.os.Bundle; import android.app.Activity; ... 
- Android(java)学习笔记236:多媒体之加载大图片到内存(Bitmap API)
		1.Bitmap (API使用) android里面的bitmap中,一个像素点需要4个byte去表示,这是因为android表示颜色是" argb ":其中 a 表示是透明度,然 ... 
- Picasso解决 TextView加载html图片异步显示
		项目中有这样一个需求: textview加载一段 html标签 其中包含 "<Img url= " 图片异步展示 而且 根据图片的比例 宽度满屏展示. 思路: 重写textv ... 
随机推荐
- Java编程的逻辑 (87) - 类加载机制
			本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ... 
- linux下从一台服务器复制文件或文件夹到本地
			1.从服务器复制文件到本地:scp root@×××.×××.×××.×××:/data/test.txt /home/myfile/ root@×××.×××.×××.××× root是目标服务 ... 
- 嵌入式开发之zynqMp ---Zynq UltraScale+  MPSoC 图像编码板zcu102
			1.1 xilinx zynqMp 架构 1.1.1 16nm 级别工艺 Zynq UltraScale+ MPSoC架构 Xilinx新一代Zynq针对控制.图像和网络应用推出了差异化的产品系,这 ... 
- xxl-job安装教程
			xxl-job是一个开源的分布式调度框架,其他类似的框架还有airflow,oozie等等,需要进行对比 https://github.com/xuxueli/xxl-job 1.首先git clon ... 
- Nginx 日志文件 access_log 详解
			Module ngx_http_log_module nginx 日志相关指令主要有两条, 一条是log_format,用来设置日志格式,另外一条是access_log,用来指定日志文件的存放路径.格 ... 
- LinkedBlockingQueue源码分析
			1. LinkedBlockingQueue源码分析(JDK8) 2. LinkedBlockingQueue源码分析 啦啦啦 
- Hystrix入门与分析(二):依赖隔离之线程池隔离
			1.依赖隔离概述 依赖隔离是Hystrix的核心目的.依赖隔离其实就是资源隔离,把对依赖使用的资源隔离起来,统一控制和调度.那为什么需要把资源隔离起来呢?主要有以下几点: 1.合理分配资源,把给资源分 ... 
- 解决org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)错误
			我调这个bug调了一天多,在网上搜索的检查namespace,package等,都没有错.错误提示是没有找到xml文件,我就纳闷了,为什么找不到呢?后来才发现,原来是resource中奇怪的目录为题, ... 
- Sping boot和mybatis整合
			在没有配置数据库时,注释这样@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) 接下来我们DataSourceA ... 
- idea遇到的坑
			(1)在main方法中启动报错: 或 经检查是pom.xml文件依赖的问题,解决方法1.将如下截图的<scope>去掉就好了 解决方法2:scope不删掉,在下面这里执行run: (2)如 ... 
