You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

77 lines
1.5 KiB
C++

//
#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;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool CDlgFill::CheckInput()
{
return true;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>޸<EFBFBD>ָ<EFBFBD><D6B8>
void CDlgFill::AddModifiCmd()
{
CLayer &layer = GetLayerInstance();
if(layer.HasObjSel())
{
CCommandModifiFill *pCmd = new CCommandModifiFill;
pCmd->SetPar(m_OldPar,true);//<2F><><EFBFBD><EFBFBD><EFBFBD>ɵIJ<C9B5><C4B2><EFBFBD>
pCmd->SetPar(m_NewPar,false);//<2F><><EFBFBD><EFBFBD><EFBFBD>µIJ<C2B5><C4B2><EFBFBD>
gCommandMgr.AddUndoCommand(pCmd);
pCmd->Excute();
}
}
void CDlgFill::OnBnClickedOk()
{
UpdateData(TRUE);
if(!CheckInput())
return;
m_NewPar.bFill = true;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>޸<EFBFBD>ָ<EFBFBD><D6B8>
AddModifiCmd();
OnOK();
}
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void CDlgFill::OnBnClickedDelFill()
{
m_NewPar.bFill = false;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD>޸<EFBFBD>ָ<EFBFBD><D6B8>
AddModifiCmd();
OnOK();
}