MFC-GDI和GDI+

设备环境DC的概念:
设备环境DC(Device Context又称为设备上下文,也称为设备描述表)。它是一个关于如何绘制图形的方法的集合,它既可以绘制各种图形,也可以确定在应用窗口中绘制图形的方式,就是绘图模式和映射模式。
在Win32编程中,设备环境是用HDC来标识。H的意思Handle句柄的意思。
【DC可以理解为画布】
CPaintDC 、CWindowDC、 CClientDC、 CDC的区别与联系:
DC就是设备上下文(Device Context, DC),可以把它理解成“画布”。
操作系统本来是使用HDC(HDC是DC的句柄,API中的一个类似指针的数据类型.)进行绘画的。
MFC中把HDC包装成了CDC类(MFC类的前缀都是C开头的),提供给程序员使用。
CPaintDC的父类就是CDC,换句话说两者底层使用同一种方法进行绘图。
MFC是通过消息泵信息处理的。CPaintDC内部发出绘图消息给系统。所以描画画面时,最好使用CPaintDC。
CDC只是HDC的包装,不包含绘图消息的发送。所以,创建图片文件(不需要刷新画面)等处理,需要使用CDC
一句话概括:
CPaintDC 无效区dc, 相当于BeginPaint, EndPaint
CClientDC 客户区dc, 相当于GetDC, ReleaseDC
CWindowDC 整窗口dc, 相当于GetWindowDC, ReleaseDC
CDC 任何dc, 相当于CreateDC, DeleteDC
GDI
画刷
Rectangle绘制矩形 FillRect绘制并填充矩形
FrameRect绘制矩形边框 InvertRect反转颜色
HFONT字体
DrawText在指定的矩形里写入格式化的文本
TextOut绘制文本
SelectObject新对象替换相同类型的对象
GetStockObject获取库存对象
GetObject获取对象信息 BeginPaint和EndPaint
BitBlt把源DC拷贝到目标DC(原大小拷贝)
StretchBlt把源DC拷贝到目标DC(缩放拷贝)
SetTextColor设置指定DC中的文字颜色
GetTextColor获取DC中的文本颜色
SetBkMode设置指定DC的背景混合模式
GetBkMode获取指定DC的背景混合模式
SetPixel绘制一个点 GetPixel获取指定点的颜色
MoveToEx移动绘制点 LineTo绘制直线
Ellipse绘制椭圆 Pie绘制饼图
CreateCompatibleBitmap创建兼容位图
HRGN区域 SelectClipRgn选择剪切区域
CombineRgn将两个区域组合为一个新区域
ExtSelectClipRgn将指定区域与当前剪辑区域组合在一起
FillRgn用指定画刷填充区域
PaintRgn用HDC中的当前画刷填充区域
FrameRgn用指定刷子围绕指定区域画一个外框
InvalidateRect使矩形区域的图形变得无效
Invalidate使整个客户区无效
InvalidateRgn指定区域无效
ExcludeClipRect创建一个新的剪辑区域,该区域由现有剪辑区域减去指定的矩形组成
IntersectClipRect创建一个新的剪裁区域,他是前一个剪裁区域与一个矩形的交集
OffsetClipRgn移动剪辑区域
SetViewportOrgEx设置DC的绘制原点坐标
GetViewportOrgEx获取DC的绘制原点坐标
GetBitmapBits获取兼容位图的数据
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2022-04-09 浩辰CAD-图层管理
2019-04-09 第十章第一节 浮力