首先说一下什么是DC(设备描述表)
Windows应用程序通过为指定设备(屏幕,打印机等)创建一个设备描述表(Device Context, DC)在DC表示的逻辑意义的“画布”上进行图形的绘制。DC是一种包含设备信息的数据结构,它包含了物理设备所需的各种状态信息。Win32程序在绘制图形之前需要获取DC的句柄HDC,并在不继续使用时释放掉。
在c++ 编程中常会见到HDC,CDC,CClientDC,CPaintDC,CWindowDC这样的类
HDC是DC的句柄,API中的一个类似指针的数据类型.
CDC是MFC的DC的一个类
CDC等设备上下分类,都含有一个类的成员变量:m_nHdc;即HDC类型的句柄.
CDC及其派生类的继承视图:
CObject
public |——CDC
public |——|——CClientDC
public |——|——CPaintDC
public |——|——CWindowDC
public |——|——CMetaFileDC
下面用例子和代码说明怎么使用pictureControl绘制坐标系和坐标点,以及在点附近输出坐标值:
1.先在对话框添加pictureControl,然后为其添加一个CStatic变量m_picDraw;
2.获取pictureControl的区域:
CRect rectPicture;
m_picDraw.GetClientRect(&rectPicture);
3.获取pictureControl的CDC
CDC *pDC=m_picDraw.GetDC()
4.初始化画刷,用于将背景颜色涂黑
CBrush newBrush;
CBrush *pOldBrush;
// 创建黑色新画刷
newBrush.CreateSolidBrush(RGB(0, 0, 0));
// 选择新画刷,并将旧画刷的指针保存到pOldBrush
pOldBrush = pDC->SelectObject(&newBrush);
// 以黑色画刷为绘图控件填充黑色,形成黑色背景
pDC->Rectangle(rectPicture);
// 恢复旧画刷
pDC->SelectObject(pOldBrush);