// #include "stdafx.h" #include "DlgFill.h" #include "afxdialogex.h" #include "GlobalFunction.h" #include "CommandModifiFill.h" #include "CommandMgr.h" IMPLEMENT_DYNAMIC(CDlgFill, CDialogEx) BEGIN_MESSAGE_MAP(CDlgFill, CDialogEx) ON_BN_CLICKED(IDOK,OnBnClickedOk) ON_BN_CLICKED(IDC_DEL_FILL, &CDlgFill::OnBnClickedDelFill) END_MESSAGE_MAP() CDlgFill::CDlgFill(SFillPar FontPar,CWnd* pParent) : CDialogEx(CDlgFill::IDD,pParent),m_OldPar(FontPar) { m_NewPar = m_OldPar; } CDlgFill::~CDlgFill() { } void CDlgFill::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_FILL_GAP, m_NewPar.m_FillGap); DDX_Text(pDX, IDC_FILL_ANGLE, m_NewPar.m_FillAngle); } BOOL CDlgFill::OnInitDialog() { CDialogEx::OnInitDialog(); UpdateData(FALSE); return TRUE; } //检查输入 bool CDlgFill::CheckInput() { return true; } //创建并执行修改指令 void CDlgFill::AddModifiCmd() { CLayer &layer = GetLayerInstance(); if(layer.HasObjSel()) { CCommandModifiFill *pCmd = new CCommandModifiFill; pCmd->SetPar(m_OldPar,true);//保存旧的参数 pCmd->SetPar(m_NewPar,false);//保存新的参数 gCommandMgr.AddUndoCommand(pCmd); pCmd->Excute(); } } void CDlgFill::OnBnClickedOk() { UpdateData(TRUE); if(!CheckInput()) return; m_NewPar.bFill = true; //创建并执行修改指令 AddModifiCmd(); OnOK(); } //删除填充 void CDlgFill::OnBnClickedDelFill() { m_NewPar.bFill = false; //创建并执行修改指令 AddModifiCmd(); OnOK(); }