先讲一下LoadBitmap的用法,代码如下:

  1. PAINTSTRUCT ps;
  2. HDC hdc = BeginPaint(hwnd,&ps);
  3. HDC hMemDC = CreateCompatibleDC(hdc);
  4. HBITMAP hBitmap = LoadBitmap(g_hIntance,MAKEINTRESOURCE(IDB_BITMAP1));
  5. HBITMAP hOldBitmap = (HBITMAP)SelectObject(hMemDC,hBitmap);
  6.  
  7. //把HBITMAP转换成BITMAP,从而获取位图的宽高。
  8. BITMAP bmp;
  9. GetObject(hBitmap, sizeof(BITMAP), &bmp);
  10. BitBlt(hdc,,,bmp.bmWidth,bmp.bmHeight,hMemDC,,,SRCCOPY);
  11.  
  12. SelectObject(hMemDC,hOldBitmap);
  13. DeleteObject(hBitmap);
  14. DeleteDC(hMemDC);
  15. EndPaint(hwnd,&ps);

BitBlt的作用是把hMemDC上的内容拷贝到hdc上,不进行缩放,但是可以位移。

如果想要缩放,可以使用StretchBlt,以下这个例子比较有趣,是把整个屏幕绘制到窗口中。

  1. PAINTSTRUCT ps;
  2. HDC hdcClient = BeginPaint(hwnd, &ps);
  3. HDC hdcScreen = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);
  4. RECT rtClient;
  5. int scrWidth = GetSystemMetrics(SM_CXSCREEN);
  6. int scrHeight = GetSystemMetrics(SM_CYSCREEN);
  7. GetClientRect(hwnd,&rtClient);
  8. StretchBlt(hdcClient,,,rtClient.right,rtClient.bottom,
  9. hdcScreen,,,scrWidth,scrHeight,SRCCOPY);
  10.  
  11. DeleteDC(hdcScreen);
  12. EndPaint(hwnd, &ps);

win32之bitmap篇的更多相关文章

  1. 大数据分析常用去重算法分析『Bitmap 篇』

    大数据分析常用去重算法分析『Bitmap 篇』  mp.weixin.qq.com 去重分析在企业日常分析中的使用频率非常高,如何在大数据场景下快速地进行去重分析一直是一大难点.在近期的 Apache ...

  2. 大数据下的Distinct Count(二):Bitmap篇

    在前一篇中介绍了使用API做Distinct Count,但是精确计算的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样介绍bitmap的: B ...

  3. Bitmap

    Bitmap篇   在前一篇中介绍了使用API做Distinct Count,但是计算精确结果的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样 ...

  4. C++矢量图形库系列(1)——矢量图形库乱谈(转)

    转自:http://blog.sina.com.cn/s/blog_4265e1760100lg03.html 本系列篇章的主要内容是讲解矢量图形库的编译.开发和使用.并不对他们周边的内容做过多的描述 ...

  5. C++矢量图形库系列(转)

    转自:http://blog.sina.com.cn/s/blog_4265e1760100lg03.html 本系列篇章的主要内容是讲解矢量图形库的编译.开发和使用.并不对他们周边的内容做过多的描述 ...

  6. c# UpdateLayeredWindow异形窗口

    #region UpdateLayeredWindow #region 重写窗体的 CreateParams 属性 protected override CreateParams CreatePara ...

  7. C# Winform实现炫酷的透明动画界面

    做过.NET Winform窗体美化的人应该都很熟悉UpdateLayeredWindow吧,UpdateLayeredWindow可以实现窗体的任意透明,效果很好,不会有毛边.不过使用这个API之后 ...

  8. P/Invoke与逆向P/Invoke

    1.在在 C# 中通过 P/Invoke 调用Win32 DLL这篇文中,详细介绍了P/Invoke的基本知识以及使用. 2.InAttribute和OutAttribute特性与C#中ref和out ...

  9. cad.net 利用win32api实现一个命令开关参照面板

    首先我要判断是否已经打开了参照面板. 然而cad自己没有相关的系统变量.这时我就需要利用到win32api来判断程序是否打开了参照面板了. 首先学习的是 https://blog.csdn.net/b ...

随机推荐

  1. 另一套备用的代码,通过service调用和登陆用户交互

    结合这两个东东,应该差不多可以搞定我需要的事情啦. 因为更改不了service代码,所以希望从service调用的代码里,争脱出来,和本地登陆用户进行交互启动. #include <window ...

  2. sql sever 等待事件

    http://blog.csdn.net/dba_huangzj/article/details/7607844

  3. CentOS 7: 设置时区和时间

    查看当前时区和时间 $ date $ ls -l /etc/localtime 查看所有可用时区 $ timedatectl list-timezones | grep Asia 设置时区 $ tim ...

  4. wpf 禁用启用webbroswer右键菜单

    //禁用脚本错误等类似的窗口信息 this.webBrowser1.ScriptErrorsSuppressed = true; //禁用右键菜单 this.webBrowser1.IsWebBrow ...

  5. python-pexpect_02ssh

    #!/usr/bin/env python """ This runs a command on a remote host using SSH. At the prom ...

  6. SQL经典面试题集锦

    1.问题背景 (1)学生表(学号,姓名,年龄,性别) student(S#,Sname,Sage,Ssex) (2)课程表(课程编号,课程名称,教师编号) course(C#,Cname,T#) (3 ...

  7. 项目构建之maven篇:1.环境搭建

    maven下载: 下载地址 环境变量设置 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd29iZW5kaWFua3Vu/font/5a6L5L2T/fon ...

  8. linux文档权限

    1.登录 root 用户:su - mac一开始进入创建的用户是具有管理员权限的用户,但是密码却不是进入 root 用户的密码,可以使用 sudo su - 免密进入 root 用户. 2.退出 ro ...

  9. Ubuntu 16.04 安装CodeBlocks

    首先将软件源添加进来,就是运行以下命令 sudo add-apt-repository ppa:damien-moore/codeblocks-stable sudo apt-get update 完 ...

  10. iOS开发基础:OC数组对象NSArray的常用方法

    本文介绍了OC的数组对象的基本方法的使用: 因为OC的数组中存储的为对象类型,所以我们可以新建一个Person类,通过Person生成对象进行操作. 其中Person.h中的代码为: [objc] v ...