MFC pictureControl 绘制直角坐标点

本文介绍了如何在MFC中利用CDC类在PictureControl控件上绘制直角坐标系和坐标点,并显示点的坐标值。通过CClientDC、CPaintDC等DC类的使用,实现图形绘制,包括背景填充、坐标轴绘制、点的绘制以及文本输出。在实际操作中,涉及到字符编码转换以适应Unicode环境。最后展示了运行效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先说一下什么是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);
    
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值