pDC->SelectObject(pPenOld); PenNew.DeleteObject();
pDC->SelectObject(pBrushOld); BrushNew.DeleteObject(); }
IMPLEMENT_SERIAL(CEllipse,CFill,0) void CEllipse::Serialize(CArchive &ar) {
CFill::Serialize(ar); if(ar.IsStoring())
ar< ar>>m_TopLeft>>m_BottomRight; } //Fill.cpp #include \ #include \李知澳 3.h\#include \CFill::CFill() { m_nFillPattern=0; //默认填充模式为纯色 m_FillColor=RGB(255,255,255); //默认填充颜色为白色 } CFill::CFill(int linewidth,int linetype,COLORREF linecolor,int fillpattern,COLORREF fillcolor):CLineType(linewidth,linetype,linecolor) { m_nFillPattern=fillpattern; m_FillColor=fillcolor; } CFill::~CFill(){} void CFill::SetCurrentBrush(CBrush &m_CurrentBrush) { if(m_nFillPattern==-1) m_CurrentBrush.CreateSolidBrush(m_FillColor); else m_CurrentBrush.CreateHatchBrush(m_nFillPattern,m_FillColor); } IMPLEMENT_SERIAL(CFill,CLineType,0) void CFill::Serialize(CArchive &ar) { CLineType::Serialize(ar); if(ar.IsStoring()) ar< 46 else ar>>m_nFillPattern>>m_FillColor; } //FillParaDlg.cpp #include \ #include \李知澳 3.h\#include \ CFillParaDlg::CFillParaDlg(CWnd* pParent /*=NULL*/) : CDialog(CFillParaDlg::IDD, pParent){} void CFillParaDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST_FILL, m_ListFill); } BOOL CFillParaDlg::OnInitDialog() //添加初始化代码 { CDialog::OnInitDialog(); m_ListFill.AddString(\纯色\ m_ListFill.AddString(\水平阴影线\ m_ListFill.AddString(\垂直阴影线\ m_ListFill.AddString(\度左上-右下阴影线\ m_ListFill.AddString(\度左下-右上阴影线\ m_ListFill.AddString(\垂直相交阴影线\ m_ListFill.AddString(\度叉线\ m_ListFill.SetCurSel(0); m_nFillPattern=-1; m_FillColor=RGB(0,0,0); UpdateData(false); return TRUE; } void CFillParaDlg::OnSelchangeListFill() { int nIndex=m_ListFill.GetCurSel(); switch(nIndex) { case 0:m_nFillPattern=-1;break; //纯色 case 1:m_nFillPattern=HS_HORIZONTAL;break;//水平阴影线 case 2:m_nFillPattern=HS_VERTICAL;break;//垂直阴影线 case 3:m_nFillPattern=HS_FDIAGONAL;break;// 45度左上-右下阴影线 case 4:m_nFillPattern=HS_BDIAGONAL;break;// 45度左下-右上阴影线 case 5:m_nFillPattern=HS_CROSS;break;// 垂直相交阴影线 case 6:m_nFillPattern=HS_DIAGCROSS;break;// 45度叉线 default:break; 47 } } void CFillParaDlg::OnButtonFillcolor() { CColorDialog ColorDlg; if(ColorDlg.DoModal()==IDOK) { m_FillColor=ColorDlg.GetColor(); } } void CFillParaDlg::OnButtonOk() //确定功能 { UpdateData(TRUE); CDialog::OnOK(); } void CFillParaDlg::OnButtonCancel() //取消功能 { CDialog::OnCancel(); } //Line.cpp #include \ #include \李知澳 3.h\#include \CLine::CLine() { m_Begin.x=m_Begin.y=0; m_End.x=m_End.y=0; } CLine::~CLine(){} CLine::CLine(CPoint begin,CPoint end,int linewidth,int linecolor):CLineType(linewidth,linetype,linecolor) { m_Begin=begin; m_End=end; } void CLine::Draw(CDC *pDC) //绘制直线段的成员函数 { CPen *pPenOld,PenNew; SetCurrentPen(PenNew);//生成新画笔 pPenOld=pDC->SelectObject(&PenNew);//将新画笔选入DC pDC->MoveTo(m_Begin); pDC->LineTo(m_End); pDC->SelectObject(pPenOld);//恢复DC中原来的画笔 48 linetype,COLORREF PenNew.DeleteObject();//删除用完的画笔 } IMPLEMENT_SERIAL(CLine,CLineType,0) void CLine::Serialize(CArchive &ar) { CLineType::Serialize(ar); if(ar.IsStoring()) ar< ar>>m_Begin>>m_End; } //LineType.cpp #include \ #include \李知澳 3.h\#include \CLineType::CLineType() { m_LineColor=RGB(0,0,0);//默认颜色为黑 m_nLineType=PS_SOLID;//默认线型为实线 m_nLineWidth=1;//默认线宽为1 } CLineType::CLineType(int linewidth,int linetype,COLORREF linecolor) { m_nLineWidth=linewidth; m_nLineType=linetype; m_LineColor=linecolor; } CLineType::~CLineType() {} void CLineType::SetCurrentPen(CPen &m_CurrentPen) { m_CurrentPen.CreatePen(m_nLineType,m_nLineWidth,m_LineColor); } IMPLEMENT_SERIAL(CLineType,CObject,0) void CLineType::Serialize(CArchive &ar) { if(ar.IsStoring()) ar< ar>>m_nLineWidth>>m_nLineType>>m_LineColor; } //LineTypeDlg.cpp 49 #include \ #include \李知澳 3.h\#include \ CLineTypeDlg::CLineTypeDlg(CWnd* pParent /*=NULL*/) : CDialog(CLineTypeDlg::IDD, pParent) {m_nLineWidth = 0;} void CLineTypeDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_LIST_LINETYPE, m_List_LineType); DDX_Text(pDX, IDC_EDIT_LINEWIDTH, m_nLineWidth); } BOOL CLineTypeDlg::OnInitDialog() { CDialog::OnInitDialog(); m_List_LineType.AddString(\实线\ m_List_LineType.AddString(\虚线\ m_List_LineType.AddString(\点线\ m_List_LineType.AddString(\点划线\ m_List_LineType.AddString(\双点划线\ m_List_LineType.SetCurSel(0); m_nLineType=0; m_nLineType=1; m_LineColor=RGB(0,0,0); UpdateData(false); return TRUE; } void CLineTypeDlg::OnSelchangeListLinetype() { int nIndex=m_List_LineType.GetCurSel(); switch(nIndex) { case 0:m_nLineType=PS_SOLID;break; case 1:m_nLineType=PS_DASH;break; case 2:m_nLineType=PS_DOT;break; case 3:m_nLineType=PS_DASHDOT;break; case 4:m_nLineType=PS_DASHDOTDOT;break; default:m_nLineType=PS_SOLID; } } void CLineTypeDlg::OnButtonLinecolor() { CColorDialog ColorDlg; if(ColorDlg.DoModal()==IDOK) 50 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库面向对象程序设计-课程设计-实验报告(5)在线全文阅读。
相关推荐: