面向对象程序设计-课程设计-实验报告(5)

2020-04-18 06:21

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


面向对象程序设计-课程设计-实验报告(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:扬州市第三人民医院敬老月活动总结

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: