GDI绘图对象
//把 hGDIObj 设置给 hdc HGDIOBJ SelectObject( //返回的是原来的GDI绘图对象的句柄 HDC hdc, HGDIOBJ hGDIObj //GDI绘图对象的句柄 ); //释放我们创建的 OBJ,释放我们创建的新画笔、画刷等(释放空间) BOOL DeleteObject(HGDIOBj hObj);
画笔
线条颜色、线条类型、线条粗细 句柄:HEPN HPEN CreatePen( int fnPenStyle,// PS_XXX Pen Style (仅仅PS_SOLID 支持多个像素宽) int nWidth, COLORREF crColor );
画刷
为封闭图形填充颜色,图案(我们在画矩形等类似的封闭图形的时候,画刷都会自动填充) HBRUSH: 画刷句柄 CreateSolidBrush(); CreateHatchBrush(); //填充纹理线 SelectObject(); ...(绘图) SelectObject(); DeleteObject()
透明画刷(可以向Win接GDI对象)
GetStockObject(); //向Win借用GDI对象
字体
win32常用的字体为TrueType[保存这每一个字的外观]格式的字体文件 只有打开字体的文件,才能真正看到字体的名字 HFONT-字体的句柄
- CreateFont(); 创建字体
- SelectObject(); 配置字体
- OnPaint(); 绘制文字
- SelectObject(); 取出字体
- DelectObject(); 删除字体 [很有必要,因为字体占用的空间很大]
HFONT CreateFont( //其实看为加载字体更好,因为此时也是在系统的目录下面把字体用上来 INT nHeight, //字体的逻辑高度 INT nWidth, //逻辑平均字符宽度 INT nEscapement, //字符串的倾斜角度 INT nOrientation, //旋转角度角度 INT fnWeightde, //字体粗细 DWORD fdwItalic, //斜体属性标志 DWORD fdwUnderline, //下划线属性标志 DWORD fdwStrikeOut, //删除属性标志 DWORD fdwCharSet, //字符集标识符 //一般使用宏 GB2312_CHARSET DWORD fdwOutputPrecision, //输出精度 //快废弃了 DWORD fdwClipPrecision, //剪辑精度 //快废弃了 DWORD fdwQuality, //输出质量 //快废弃了 DWORD fdwPitchAndFamily, //匹配字体 //快废弃了 LPCTSTR lpszFace //指向字体名称字符串的指针[字体名称] );
位图(同时属于资源GDI对象[操作两者集合])
图形的分类[光栅图片(记录每一个点的颜色位置等信息),矢量图形(记录图像的算法,指令等)]
位图属于光栅图形 位图就是BMP为后缀名的图片 HBITMAP 位图句柄
位图的使用
- 添加位图资源 //直接可视化操作
- LoadBitMap() //在进程里面找到位图
- 创建一个于当前DC匹配的DC(内存DC[内存DC的理解很重要])
- 将位图的数据给内存DC SelectObject();[在虚拟区域画出来,这样就可以一瞬间展示出来]
- 成像(1:1不是画图,类似抄作业) BitBlt[Bit Block transfer]
- 取出位图 SelectObject()
- 释放位图 DeleteObject()
- 释放匹配的DC DeleteDC()
HDC CreateCompatibleDc( //创建好的句柄 HDC hdc //当前的DC句柄,为NULL的时候表示借用屏幕的DC ); //成像使用的API BOOL BitBlt( HDC hdcDest, //目的的DC int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, //源DC int nXSrc, //src上面的开始位置 int nYSrc DWORD dwRop //成像的方法 [SRCOPY] ); //缩放成像 BOOL StretchBlt()
调色板
. . .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步