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

    PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd,&ps);
HDC hMemDC = CreateCompatibleDC(hdc);
HBITMAP hBitmap = LoadBitmap(g_hIntance,MAKEINTRESOURCE(IDB_BITMAP1));
HBITMAP hOldBitmap = (HBITMAP)SelectObject(hMemDC,hBitmap); //把HBITMAP转换成BITMAP,从而获取位图的宽高。
BITMAP bmp;
GetObject(hBitmap, sizeof(BITMAP), &bmp);
BitBlt(hdc,,,bmp.bmWidth,bmp.bmHeight,hMemDC,,,SRCCOPY); SelectObject(hMemDC,hOldBitmap);
DeleteObject(hBitmap);
DeleteDC(hMemDC);
EndPaint(hwnd,&ps);

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

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

    PAINTSTRUCT ps;
HDC hdcClient = BeginPaint(hwnd, &ps);
HDC hdcScreen = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);
RECT rtClient;
int scrWidth = GetSystemMetrics(SM_CXSCREEN);
int scrHeight = GetSystemMetrics(SM_CYSCREEN);
GetClientRect(hwnd,&rtClient);
StretchBlt(hdcClient,,,rtClient.right,rtClient.bottom,
hdcScreen,,,scrWidth,scrHeight,SRCCOPY); DeleteDC(hdcScreen);
EndPaint(hwnd, &ps);

最新文章

  1. [django]windows下用Django,静态文件请求失败,出现UnicodeDecodeError
  2. Java字符串中常见的10个问题
  3. paip.提高稳定性---自动检测sleep mysql数据库死连接以及kill
  4. SQL 注入防御方法总结
  5. 【Java线程】Callable和Future
  6. form表单select联动
  7. Vim 配置 winmanager
  8. 机器学习系列(17)_Yelper推荐系统
  9. es6 Module
  10. 20 ViewPager Demo4自动轮播
  11. 1709: Fire or Retreat(zzuli)
  12. 微信公众号开发--.Net Core实现微信消息加解密
  13. 超简单,Centos7 安装 rabbitMQ
  14. asp.net mvc中的后台验证
  15. 2016-2017-2 《Java程序设计》第5周学习总结
  16. 并发基础(二) Thread类的API总结
  17. swift 3.0 正则表达式查找/替换字符
  18. PHP获取目录和文件的方法
  19. SpringBoot Web项目中中如何使用Junit
  20. ListView-电影列表

热门文章

  1. cookie & cookies
  2. jsp内置对象(转)
  3. Maven奇怪的问题,当找不到Maven输出的提示错误时可以试下这个方法
  4. Android 自己定义控件实现刮刮卡效果 真的就仅仅是刮刮卡么
  5. Java 实现代理(Proxy)模式
  6. nmap,port扫描,获取sshserver的ip地址
  7. 负载均衡算法,轮询方式 大话设计模式之工厂模式 C#
  8. Tomcat PK Resin
  9. Unity3d中相应各平台Path
  10. SQL语句多表连接查询语法