【C++】【MFC】绘图
1.【C++】关于引用类型学习记录2.【C++】【图像处理】直方图均衡算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)3.【C++】【图像处理】均值滤波 and 高斯滤波 and 中值滤波 (低通滤波器)and Sobel算子边缘提取算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)4.【C++】【图像处理】形态学处理(腐蚀、膨胀)算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)5.【C++】【图像处理】灰度直方图实现算法解析(以.raw格式的图像为基础进行图像处理、gray levels:256)6.【C++】【OpenCV】Visual Studio 2022 配置OpenCV7.【C++】【OpenCV-4.9.0】灰度图取反(Mat属性的使用)8.【C++】【OpenCV-4.9.0】视频写入(VideoWriter,借助samples中的代码示例来进行学习)9.【C++】【MFC】Windows程序运行入口 and DialogBox10.【C++】【YOLO】搭建环境运行YOLO模型,完成目标识别11.【C++】【MFC】模态和非模态对话框12.【C++】【MFC】运行时类信息机制和动态创建机制13.【C++】【MFC】CView和CDocument关联以及COMMAND消息走向14.【C++】【MFC】MFC多文档框架
15.【C++】【MFC】绘图
16.【C++】【MFC】MFC序列化17.【C++】【MFC】控件集合MFC当中,调用 CDC或者其子类 中的成员变量 m_hDC 和 m_dAttribDC 来获取绘图设备句柄
CPaintDC 类, 封装了在 WM_PAINT 消息中绘图的绘图设备
CClientDC 类,封装了在客户区绘图的绘图设备
CGdiObject(绘图对象类)
封装了各种绘图对象相关的操作,成员变量 m_hObject (绘图对象句柄)
Cpen类, 封装了画笔的操作
CBrush类, 封装了画刷的操作
CFont类,封装了字体的操作
CBitmap类,封装了位图的操作
画笔:
1 void CMFCDrwaView::OnPen() 2 { 3 // TODO: 在此添加命令处理程序代码 4 CClientDC dc(this); 5 CPen pen(PS_SOLID, 2, RGB(255, 0, 0)); 6 //auto* o = dc.SelectObject(&pen); 7 auto o = ::SelectObject(dc.m_hDC, pen.m_hObject); 8 //dc.Rectangle(100, 100, 300, 300); 9 ::Rectangle(dc.m_hDC, 100, 100, 300, 300); 10 //dc.SelectObject(o); 11 ::SelectObject(dc.m_hDC, o); 12 //pen.DeleteObject(); 13 ::DeleteObject(pen.m_hObject); 14 }
画刷:
1 void CMFCDrwaView::OnBrush() 2 { 3 // TODO: 在此添加命令处理程序代码 4 CClientDC dc(this); 5 CBrush brush(RGB(0, 255, 0)); 6 auto o = dc.SelectObject(&brush); 7 dc.Rectangle(100, 100, 300, 300); 8 dc.SelectObject(&o); 9 brush.DeleteObject(); 10 }
字体:
1 void CMFCDrwaView::OnFont() 2 { 3 // TODO: 在此添加命令处理程序代码 4 CClientDC dc(this); 5 CFont font; 6 font.CreatePointFont(300, "Black"); 7 auto o = dc.SelectObject(&font); 8 dc.TextOut(100, 100, "Hello"); 9 dc.SelectObject(o); 10 font.DeleteObject(); 11 }
位图:
1 void CMFCDrwaView::OnBitmap() 2 { 3 // TODO: 在此添加命令处理程序代码 4 /* 5 1、添加位图资源 6 2、创建一个和当前DC相匹配的内存DC 7 3、将位图数据发送给内存DC 8 4、成像 9 5、将数据要回来 10 6、销毁位图 11 7、销毁内存DC 12 */ 13 CClientDC dc(this); 14 CDC memdc; 15 memdc.CreateCompatibleDC(&dc); 16 17 CBitmap bmp; 18 bmp.LoadBitmap(IDB_BITMAP1); 19 auto o = memdc.SelectObject(bmp); 20 21 dc.BitBlt(100, 100, 48, 48, &memdc, 0, 0, SRCCOPY); 22 23 memdc.SelectObject(o); 24 25 bmp.DeleteObject(); 26 27 memdc.DeleteDC(); 28 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)