Windows程序设计:位图的显示
来源:互联网 发布:死神漫画单行本淘宝 编辑:程序博客网 时间:2024/05/22 05:13
在WIN32中,将位图显示在窗口上的步骤有一些复杂
它不是将位图像线条一样直接画在窗口上的,而是通过内存句柄调用显示在窗口上的
如果要在窗体上显示位图,首先要把位图调入资源视图中
加载位图资源:将资源视图中的位图加载进来
static HBITMAP hBitMap; //位图句柄static BITMAP BitMap; //位图结构体
typedef struct tagBITMAP { LONG bmType; //位图类型 LONG bmWidth; //位图宽度 LONG bmHeight; //位图高度 LONG bmWidthBytes; //宽度所占字节 WORD bmPlanes; WORD bmBitsPixel; //像素 LPVOID bmBits; } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP;
加载位图:在窗口创建的时候进行加载
case WM_CREATE:{hBitMap = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_FUTURE)); //得到位图句柄GetObject(hBitMap, sizeof(BITMAP), &BitMap); //将位图句柄传给位图结构体//获取位图的宽度和高度cxBitMap = BitMap.bmWidth;cyBitMap = BitMap.bmHeight;}break;
创建内存环境设备:
位图和窗口一样,专门需要一个句柄,用来存放位图,称为位图内存DC
HDC hdcMem; //位图的内存DC
将位图选入内存DC,用于在窗体上绘制
SelectObject(hdcMem, hBitMap); //将位图选入内存DC
使用BitBlt()函数进行绘制
//把内存DC中的位图拷贝到窗口DC中显示BitBlt(hdc, 200, 200, cxBitMap, cyBitMap, hdcMem,0,0,SRCCOPY); //用拷贝的方式执行参数说明:hdc是窗口句柄
200,200表示绘制的窗口起始坐标(就是从窗口的哪里开始绘制)
cxBitMap和cyBitMap为位图的大小,
0,0表示位图上的一个坐标,程序将从该坐标开始进行绘制
SRCCOPY表示用拷贝的方式执行操作
效果:
阅读全文
0 0
- Windows程序设计:位图的显示
- windows 程序设计 位图
- BITMAPINFO结构 <windows中显示位图必备的位图信息>
- 《Windows程序设计》之位图操作
- windows程序设计:位图和bitblt
- MFC Windows程序设计--位图,区域
- Windows程序设计-设备无关位图
- windows 程序设计 DIB(设备无关的位图)
- 《Windows程序设计》之菜单中使用位图
- windows程序设计篇——插入位图
- windows程序设计学习笔记-设备相关位图
- windows程序设计学习笔记-设备无关位图
- Windows程序设计-位图和位块传输
- 透明位图的显示
- 透明位图的显示
- 透明位图的显示
- 位图的滚动显示
- 透明位图的显示
- 第10章-窗口函数
- spark系列文章
- BottomTabBar简单使用
- CSAPP Note chap10
- java.lang.IllegalStateException: No thread-bound request found Spring中遇见问题,说是并流了
- Windows程序设计:位图的显示
- 安卓第一课
- 后台程序升级流程
- Day012
- 1034. 有理数四则运算(20)
- BZOJ4025: 二分图(线段树+并查集)
- JSP变成Servlet
- 使用sz和rz命令进行Linux和Windows之间的文件传输
- [HAL库学习之路]11.RTC-实时时钟