1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85
|
#pragma once
#include "atltypes.h"
// Cible de la commande CLine
class CLine : public CObject
{
DECLARE_SERIAL (CLine)
public:
CLine();
virtual ~CLine();
CPoint m_ptForm;
CPoint m_ptTo;
public:
CLine(CPoint ptForm, CPoint ptTo, UINT nCurWidth, COLORREF crColor);
public:
void Draw(CDC* pDC);
public:
void Serialize(CArchive & ar);
private:
COLORREF m_crColor;
private:
UINT m_nCurWidth;
};
Définition de CLine
// Line.cpp*: fichier d'implémentation
//
#include "stdafx.h"
#include "Line.h"
#include "ModArt.h"
IMPLEMENT_SERIAL (CLine, CObject, 1)
// CLine
CLine::CLine()
: m_ptForm(0)
, m_ptTo(0)
, m_nCurWidth(0)
{
}
CLine::~CLine()
{
}
// Fonctions membres CLine
CLine::CLine(CPoint ptForm, CPoint ptTo, UINT nCurWidth, COLORREF crColor)
{
m_ptForm = ptForm;
m_ptTo = ptTo;
m_crColor = crColor;
m_nCurWidth = nCurWidth;
}
void CLine::Draw(CDC* pDC)
{
// Crée un crayon
CPen lpen (PS_SOLID, 1, m_crColor);
// Définit le nouveau crayon comme objet de dessin
CPen* pOldPen = pDC->SelectObject(&lpen);
// Dessine la ligne
pDC->MoveTo(m_ptForm);
pDC->LineTo(m_ptTo);
// Rétablit le crayon précédent
pDC->SelectObject(pOldPen);
}
void CLine::Serialize(CArchive & ar)
{
CObject::Serialize(ar);
if (ar.IsStoring())
ar << m_ptForm << m_ptTo << (DWORD) m_crColor;
else
ar >> m_ptForm >> m_ptTo >> (DWORD) m_crColor;
} |
Partager