在 CDrawingManager.h 头文件中声明方法:
// CDrawingManager.h 头文件
class CDrawingManager
{
public:
void DrawLine(CDC* pDC, CPoint startPoint, CPoint endPoint, COLORREF color);
void DrawLineA(CDC* pDC, CPoint startPoint, CPoint endPoint, COLORREF color, int lineStyle);
// 其他成员和方法...
};
在 CDrawingManager.cpp 源文件中实现方法:
// CDrawingManager.cpp 源文件
void CDrawingManager::DrawLine(CDC* pDC, CPoint startPoint, CPoint endPoint, COLORREF color)
{
CPen pen(PS_SOLID, 1, color);
CPen* pOldPen = pDC->SelectObject(&pen);
pDC->MoveTo(startPoint);
pDC->LineTo(endPoint);
pDC->SelectObject(pOldPen);
}
void CDrawingManager::DrawLineA(CDC* pDC, CPoint startPoint, CPoint endPoint, COLORREF color, int lineStyle)
{
CPen pen(lineStyle, 1, color);
CPen* pOldPen = pDC->SelectObject(&pen);
pDC->MoveTo(startPoint);
pDC->LineTo(endPoint);
pDC->SelectObject(pOldPen);
}
这两个方法分别是 DrawLine 和 DrawLineA,其中 DrawLine 使用实线,而 DrawLineA 具有一个额外的参数 lineStyle,用于指定线的样式,例如 PS_DOT 表示点线。
使用这些方法时,你可以创建 CDrawingManager 的实例,并调用这两个方法来绘制线条。例如:
CDrawingManager drawingManager;
drawingManager.DrawLine(pDC, CPoint(10, 10), CPoint(100, 100), RGB(255, 0, 0));
drawingManager.DrawLineA(pDC, CPoint(20, 20), CPoint(150, 150), RGB(0, 0, 255), PS_DOT);
请根据你的实际需求进行适当调整。
转载请注明出处:http://www.pingtaimeng.com/article/detail/17584/MFC/CDrawingManager