【MFC系列-第19天】初步认识GDI绘图技术
WM_PAINT消息测试
调试输出字符串
OutputDebugSting(_T(“WM_PAINT-OnPaint\n”));
1、WM_PAINT:功能和发生时间
2、BeginPaint和EndPaint必须成对使用。
a)BeginPaint
返回的DC句柄,是基于关联的窗口客户区坐标系绘图
b)MFC把这两个函数封装为一个类:CPaintDC
类,防止BeginPaint
和EndPaint
不成对使用。
3、CDC类和CDC派生类
CDC类核心句柄就是m_hDC
,他的绘图功能基本都是来自于m_hDC
句柄原有的功能。
a)CPaint类:客户区标准绘图类,专门提供给WM_PAINT消息使用。
b)CClientDC类:客户区临时绘图类,在任何其他消息都可以使用的。
void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point)
{CClientDC dc(this);//封装了API:GetDC和ReleaseDCdc.Ellipse(CRect(point.x - 10, point.y - 5, point.x + 10, point.y + 5));CDialogEx::OnLButtonDown(nFlags, point);
}
c)CWindowDC
类:非客户区标准绘图类,专门在WM_NCPAINT中使用,不太常用。
void CTestDlg::OnNcPaint()
{//既不是屏幕坐标系,也不是客户区坐标系,这个是非客户区坐标系CRect rect;GetWindowRect(rect);rect.OffsetRect(-rect.left, -rect.top);CWindowDC dc(this);//封装API是:GetWindowDC,ReleaseDCdc.FillSolidRect(rect, RGB(200, 255, 255));
}
d)CMemoryDC
类:由吕老师封装,内存DC绘制,不区分消息随时使用。
另外还有一个坐标系是屏幕坐标系,屏幕左上角是坐标系的原点。
【MFC系列-第19天】初步认识GDI绘图技术相关推荐
- MFC绘制动态曲线,用双缓冲绘图技术防闪烁
转载自:ZHY_ongu的博客:MFC绘制动态曲线,用双缓冲绘图技术防闪烁 先上效果图 随着时间的推移,曲线向右平移,同时X轴的时间坐标跟着更新. 一.如何绘制动态曲线. 所谓动画,都是一帧一帧 ...
- 【MFC系列-第25、26天】绘图软件
25.1 绘图软件的绘制原理 纯虚函数:抽象函数,强制在派生类中进行实现: 虚函数:有函数体,可在基类也可在派生类中实现. 基类CLayer class CLayer {//抽象类 public:CL ...
- [转载] MFC绘制动态曲线,用双缓冲绘图技术防闪烁
转载的原文地址 先上效果图 随着时间的推移,曲线向右平移,同时X轴的时间坐标跟着更新. 一.如何绘制动态曲线 所谓动画,都是一帧一帧的图像连续呈现在用户面前形成的.所以如果你掌握了如何绘制静态曲线,那 ...
- SAP PM 入门系列之19 - IP31 Maintenance Plan Costing
SAP PM 入门系列之19 - IP31 Maintenance Plan Costing 在SAP系统里,我们可以为维护计划确定其在某个期间里预计的成本.不过前提条件是: · The mainte ...
- STM32 基础系列教程 19 – WWDG
前言 学习stm32 窗口看门狗(WWDG)接口使用,学会用STM32内部窗口看门狗(WWDG)接口实现程序异常时自复位功能.WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序.窗口看门狗由从 ...
- MFC中的GDI绘图
MFC中的GDI绘图 目录(?)[+] 什么是GDI 什么是DC MFC中与GDI有关的类 获取设备环境 设置坐标映射 创建绘图工具并选入DC 调用DC绘图函数绘图 三坐标映射实例 一.关于GDI的基 ...
- MFC GDI绘图基础
一.关于GDI的基本概念 什么是GDI? Windows绘图的实质就是利用Windows提供的图形设备接口GDI(Graphics Device Interface)将图形绘制在显示器上. 在Wind ...
- mfc 监控文件操作_商务办公好伴侣 兄弟MFC系列多功能一体机
谈到多功能一体机产品,大家应该对兄弟品牌旗下的MFC系列并不陌生,该系列产品线跨度广,无论是中小型企业或是政府机关.事业单位等用户都有覆盖,凭借着MFC系列一体机高速.高质量.低成本等特点,MFC系列 ...
- MFC GDI+ 绘图
MFC GDI+ 绘图 -------------------------- void CGDIplusTestView::OnDraw(CDC* /*pDC*/) { CGDIplusTestDoc ...
最新文章
- CVPR2022最新106篇论文整理|包含目标检测、动作识别、图像处理等32个方向
- 【机器学习】机器学习中样本不平衡,怎么办?
- Hadoop 系列之 Hive
- 3n+1b 备忘录方法
- mipi差分信号原理
- 群晖修改ipv6dns服务器,hiboy大佬的padavan开启IPv6,并使用IPv6登录黑群晖的方法
- svn 客户端下载地址
- 在计算机f有关快捷键,电脑快捷键大全
- 变电站无线测温系统的特点与应用
- 二层、三层、四层交换机的区别
- H5电玩城源码+玩法比较多+UI也特别好看+纯源码系列
- android ui ue,什么是UI设计,UE设计,二者有什么区别?
- Python从入门到实践
- Makefile文件是什么
- Linxu下RocketMq及可视化界面的搭建
- 阿里云合作伙伴返点和代理商返点的差别
- 360N5S:360N5S刷机
- scrapy快速入门
- Android 如何保存图片
- bat批量剪切命令_Windows批量搜索并复制/剪切文件的批处理程序实例
热门文章
- Xuggler开发教程
- Artifact到底是什么
- Linux 命令之 nslookup 命令-查询域名 DNS 信息的工具
- 人工智能领域论文常见基本概念笔记
- android获取应用安装通知消息,如何在Android 11 上获取已安装应用列表
- php导出页面居中设置,PHPExcel导出插入图片和居中问题
- getexternalfilesdir 相册_音乐相册(电子相册制作)V5.2 安卓最新版
- matlab中prprob,pr-sr-master
- base64 二进制流java_读取和base64编码二进制文件
- python内置属性类_Python内置类属性,元类研究