温馨提示×

mfc怎么在自建类列表里画线

MFC
小亿
84
2023-12-14 14:50:36
栏目: 编程语言

在MFC中,可以使用CDC类的LineTo()函数来画线。以下是一个示例代码:

  1. 首先,在自建类的头文件中添加以下成员变量和函数声明:
class CMyClass
{
public:
    // ...
    CPoint m_ptStart;   // 起始点坐标
    CPoint m_ptEnd;     // 终点坐标

    void DrawLine(CDC* pDC);   // 画线函数声明
};
  1. 在自建类的源文件中实现画线函数:
void CMyClass::DrawLine(CDC* pDC)
{
    CPen pen(PS_SOLID, 1, RGB(0, 0, 0));    // 创建一个黑色的画笔
    CPen* pOldPen = pDC->SelectObject(&pen);    // 选择画笔

    pDC->MoveTo(m_ptStart);    // 将画笔移动到起始点
    pDC->LineTo(m_ptEnd);      // 从起始点画线到终点

    pDC->SelectObject(pOldPen);    // 恢复原来的画笔
}
  1. 在MFC的View类中的OnDraw()函数中调用自建类的画线函数:
void CMyView::OnDraw(CDC* pDC)
{
    CMyDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    // TODO: 在此处为本机数据绘制代码添加绘制代码
    CMyClass myClass;
    // 设置起始点和终点坐标
    myClass.m_ptStart = CPoint(50, 50);
    myClass.m_ptEnd = CPoint(200, 200);
    myClass.DrawLine(pDC);
}

这样,在自建类列表中,就能够画出一个起始点为(50, 50),终点为(200, 200)的直线了。

0