Win32 Windows编程 十一
2020-12-13 05:14
标签:win32 gdi 位图 编程 windows 一、位图的使用 1 位图 - 通过保存图像上每个点的颜色,生成相应的位图文件 光栅图 - 可以理解为图像点阵的保存 矢量图 - 可以理解为绘图命令的保存 2 位图的使用 2.1 加载位图 LoadBitmap 2.2 创建放置位图的DC CreateCompatibleDC 2.3 将位图放入创建的DC中 SelectObject 2.4 绘制位图到当前DC中 BitBlt StretchBlt 可以实现图像的缩放,但是缩放的效果不好 2.5 取出位图 SelectObject 2.6 删除创建的DC DeleteDC 2.7 删除位图 DeleteObject 2.8 获取位图信息
二 坐标系和映射模式 1 坐标系 1.1 设备坐标系 设备坐标系以像素为单位,x正方向从左往右,y正方向从上往下 屏幕坐标系 - 以屏幕的左上角为(0,0)点 窗口坐标系 - 以窗口最外边框的左上角为(0,0 )点 客户区坐标系 - 以窗口内的客户区的左上角为(0, 0) 点 1.2 逻辑坐标系 以逻辑单位定义的坐标系。绘图过程中使用的坐标基本是以逻辑坐标系绘制 默认情况下和设备坐标系保持一致, 但是可以修改 2 映射模式 逻辑坐标系和设备坐标系之间的映射关系 2.1 映射模式的种类 MM_TEXT - 默认的映射方式,逻辑坐标系和设备坐标系一致 MM_LOMETRIC - 0.1MM
X 方向一致 Y方向相反 MM_HIMETRIC - 0.01MM X 方向一致 Y方向相反 MM_LOENGLISH - 0.1inX 方向一致 Y方向相反 MM_HIENGLISH - 0.01inX 方向一致 Y方向相反 MM_TWIPS - 1/1400in 方向一致 Y方向相反 MM_ANISOTROPIC - 可以指定逻辑单位 XY方向可以指定 X轴单位可以不等于 Y轴单位 MM_ISOTROPIC - 可以指定逻辑单位 XY的方向也可以指定, X轴单位 = Y轴单位 3 映射模式的使用 3.1 设置映射模式 3.2 绘图 3.3 回复旧映射模式 3.4 MM_ISOTROPIC 需要自己设计X/Y轴的正方向以及逻辑单位和设备单位的比例 设备坐标 像素 逻辑坐标 通过添加正负号设置Y轴方向
Win32 Windows编程 十一 标签:win32 gdi 位图 编程 windows 原文地址:http://blog.csdn.net/ctxbloger/article/details/38040743int GetObject(
HGDIOBJ hgdiobj, // handle to graphics object GDI对象句柄 这里就是HBITMAP
int cbBuffer, // size of buffer for object information 位图信息的BUFF的大小
LPVOID lpvObject // buffer for object information 位图信息的BUFF指针
);
位图的BUFF结构为BITMAP结构
int SetMapMode(
HDC hdc, // handle to device context 映射的句柄
int fnMapMode // new mapping mode 新的映射方式
); //返回旧的映射模式
int SetMapMode(
HDC hdc, // handle to device context
int fnMapMode // new mapping mode
);
BOOL SetWindowExtEx(
HDC hdc, // handle to device context
int nXExtent, // new horizontal window extent
int nYExtent, // new vertical window extent
LPSIZE lpSize // original window extent
);
BOOL SetViewportExtEx(
HDC hdc, // handle to device context
int nXExtent, // new horizontal viewport extent
int nYExtent, // new vertical viewport extent
LPSIZE lpSize // original viewport extent
);