win32之bitmap篇
先讲一下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);
win32之bitmap篇的更多相关文章
- 大数据分析常用去重算法分析『Bitmap 篇』
大数据分析常用去重算法分析『Bitmap 篇』 mp.weixin.qq.com 去重分析在企业日常分析中的使用频率非常高,如何在大数据场景下快速地进行去重分析一直是一大难点.在近期的 Apache ...
- 大数据下的Distinct Count(二):Bitmap篇
在前一篇中介绍了使用API做Distinct Count,但是精确计算的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样介绍bitmap的: B ...
- Bitmap
Bitmap篇 在前一篇中介绍了使用API做Distinct Count,但是计算精确结果的API都较慢,那有没有能更快的优化解决方案呢? 1. Bitmap介绍 <编程珠玑>上是这样 ...
- C++矢量图形库系列(1)——矢量图形库乱谈(转)
转自:http://blog.sina.com.cn/s/blog_4265e1760100lg03.html 本系列篇章的主要内容是讲解矢量图形库的编译.开发和使用.并不对他们周边的内容做过多的描述 ...
- C++矢量图形库系列(转)
转自:http://blog.sina.com.cn/s/blog_4265e1760100lg03.html 本系列篇章的主要内容是讲解矢量图形库的编译.开发和使用.并不对他们周边的内容做过多的描述 ...
- c# UpdateLayeredWindow异形窗口
#region UpdateLayeredWindow #region 重写窗体的 CreateParams 属性 protected override CreateParams CreatePara ...
- C# Winform实现炫酷的透明动画界面
做过.NET Winform窗体美化的人应该都很熟悉UpdateLayeredWindow吧,UpdateLayeredWindow可以实现窗体的任意透明,效果很好,不会有毛边.不过使用这个API之后 ...
- P/Invoke与逆向P/Invoke
1.在在 C# 中通过 P/Invoke 调用Win32 DLL这篇文中,详细介绍了P/Invoke的基本知识以及使用. 2.InAttribute和OutAttribute特性与C#中ref和out ...
- cad.net 利用win32api实现一个命令开关参照面板
首先我要判断是否已经打开了参照面板. 然而cad自己没有相关的系统变量.这时我就需要利用到win32api来判断程序是否打开了参照面板了. 首先学习的是 https://blog.csdn.net/b ...
随机推荐
- 另一套备用的代码,通过service调用和登陆用户交互
结合这两个东东,应该差不多可以搞定我需要的事情啦. 因为更改不了service代码,所以希望从service调用的代码里,争脱出来,和本地登陆用户进行交互启动. #include <window ...
- sql sever 等待事件
http://blog.csdn.net/dba_huangzj/article/details/7607844
- CentOS 7: 设置时区和时间
查看当前时区和时间 $ date $ ls -l /etc/localtime 查看所有可用时区 $ timedatectl list-timezones | grep Asia 设置时区 $ tim ...
- wpf 禁用启用webbroswer右键菜单
//禁用脚本错误等类似的窗口信息 this.webBrowser1.ScriptErrorsSuppressed = true; //禁用右键菜单 this.webBrowser1.IsWebBrow ...
- python-pexpect_02ssh
#!/usr/bin/env python """ This runs a command on a remote host using SSH. At the prom ...
- SQL经典面试题集锦
1.问题背景 (1)学生表(学号,姓名,年龄,性别) student(S#,Sname,Sage,Ssex) (2)课程表(课程编号,课程名称,教师编号) course(C#,Cname,T#) (3 ...
- 项目构建之maven篇:1.环境搭建
maven下载: 下载地址 环境变量设置 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd29iZW5kaWFua3Vu/font/5a6L5L2T/fon ...
- linux文档权限
1.登录 root 用户:su - mac一开始进入创建的用户是具有管理员权限的用户,但是密码却不是进入 root 用户的密码,可以使用 sudo su - 免密进入 root 用户. 2.退出 ro ...
- Ubuntu 16.04 安装CodeBlocks
首先将软件源添加进来,就是运行以下命令 sudo add-apt-repository ppa:damien-moore/codeblocks-stable sudo apt-get update 完 ...
- iOS开发基础:OC数组对象NSArray的常用方法
本文介绍了OC的数组对象的基本方法的使用: 因为OC的数组中存储的为对象类型,所以我们可以新建一个Person类,通过Person生成对象进行操作. 其中Person.h中的代码为: [objc] v ...