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