win32开发(绘制bitmap)
来源:互联网 发布:js valueof 比较大小 编辑:程序博客网 时间:2024/06/05 02:16
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
win32平台支持直接绘制bitmap图片,所以同学们可以从网上直接找一张图片来绘制。一般来说,绘制图像分成这几个步骤:1、创建兼容上下文设备,2、根据文件直接创建bitmap句柄,3、句柄绑定,4、使用BitBlt绘图,5、删除bitmap句柄和兼容上下文设备,
CreateCompatibleDCLoadImageSelectObjectBitBltDeleteObjectDeleteDC看上去有点复杂,我们可以弄一点真实的代码来说明,
case WM_PAINT:HDC hdcmem; HBITMAP hbmp;BITMAP bmp;hdc = BeginPaint(hWnd, &ps);hdcmem = CreateCompatibleDC(hdc);hbmp = (HBITMAP)LoadImage(NULL, "setup.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); GetObject(hbmp, sizeof(bmp), &bmp);SelectObject(hdcmem, hbmp);BitBlt(hdc, 0, 0, bmp.bmWidth, bmp.bmHeight, hdcmem, 0, 0, SRCCOPY);DeleteObject(hbmp);DeleteDC(hdcmem);EndPaint(hWnd, &ps);break;这里的图片是用LoadImage获取的,如果是系统的位图,可以直接用LoadBitmap获取。同时注意,这里bmp的信息是通过GetObject获得的,它主要是在BitBlt的时候使用到的。如果大家需要绘制其他的图片,只需要把这里的文件换成自己本地的bitmap文件就可以了。那么,如果想自己直接创建bitmap像素进行贴图,应该怎么用呢?也不复杂,
CreateBitmapSetDIBitsCreateCompatibleDCSelectObjectBitBltDeleteDC具体实现,这里就不贴出代码了。大家可以参考这个地址的代码, 地址在这。但是,我们可以用msdn的方法,把这些函数的意义弄明白,一步一步去做就可以了。另外,还有一个稍微复杂一点,但是我觉得很有意义的案例就是msdn提供的一个截屏代码的范例,地址在这。我个人觉得,这个代码非常有意义,如果大家可以真正把这份代码看明白了,使用win32贴图这个基本功能也就真正掌握了。
阅读全文
0 0
- win32开发(绘制bitmap)
- win32开发(图形绘制)
- iOS开发UI篇—Quartz2D使用(把图片绘制到Bitmap上>输出图片)
- 在位图上(Bitmap)绘制位图(Bitmap)
- Android 绘制波浪线(使用 bitmap )
- win32 绘制超酷界面(一)
- win32 绘制超酷界面(二)
- 在Bitmap上绘制Bitmap
- win32开发(调试)
- win32开发(鼠标)
- win32开发(定时器)
- bitmap绘制位图
- C#读取Win32标准DLL文件中的Bitmap(位图)
- Win32汇编:绘制文本
- Win32 绘制矩形2
- [Win32]曲线绘制
- 【C】Win32绘制五边形
- WIN32 opengl三角形绘制
- 2017-12-20 购买系统
- 第一个小爬虫--爬取图片并保存
- Android中的visibility属性
- spring--自定义ReturnValueHandler
- C语言:可变参数宏以及##和#符的使用
- win32开发(绘制bitmap)
- Alpha-beta剪枝-井字棋
- Codeforces Round #453 (Div. 2) A
- java多线程[9]:线程池(ExecutorService)
- 汇编语言的执行过程
- 离合器预减振超载造成变速箱怠速异响matlab仿真分析
- 【Laravel】数据库事务
- random模块有关
- 坚持#第247天~sed和awk进阶