溫馨提示×

mfc怎么在自建類列表里畫線

MFC
小億
86
2023-12-14 14:50:36
欄目: 編程語言

在MFC中,可以使用CDC類的LineTo()函數(shù)來畫線。以下是一個示例代碼:

  1. 首先,在自建類的頭文件中添加以下成員變量和函數(shù)聲明:
class CMyClass
{
public:
    // ...
    CPoint m_ptStart;   // 起始點(diǎn)坐標(biāo)
    CPoint m_ptEnd;     // 終點(diǎn)坐標(biāo)

    void DrawLine(CDC* pDC);   // 畫線函數(shù)聲明
};
  1. 在自建類的源文件中實(shí)現(xiàn)畫線函數(shù):
void CMyClass::DrawLine(CDC* pDC)
{
    CPen pen(PS_SOLID, 1, RGB(0, 0, 0));    // 創(chuàng)建一個黑色的畫筆
    CPen* pOldPen = pDC->SelectObject(&pen);    // 選擇畫筆

    pDC->MoveTo(m_ptStart);    // 將畫筆移動到起始點(diǎn)
    pDC->LineTo(m_ptEnd);      // 從起始點(diǎn)畫線到終點(diǎn)

    pDC->SelectObject(pOldPen);    // 恢復(fù)原來的畫筆
}
  1. 在MFC的View類中的OnDraw()函數(shù)中調(diào)用自建類的畫線函數(shù):
void CMyView::OnDraw(CDC* pDC)
{
    CMyDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    // TODO: 在此處為本機(jī)數(shù)據(jù)繪制代碼添加繪制代碼
    CMyClass myClass;
    // 設(shè)置起始點(diǎn)和終點(diǎn)坐標(biāo)
    myClass.m_ptStart = CPoint(50, 50);
    myClass.m_ptEnd = CPoint(200, 200);
    myClass.DrawLine(pDC);
}

這樣,在自建類列表中,就能夠畫出一個起始點(diǎn)為(50, 50),終點(diǎn)為(200, 200)的直線了。

0