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++
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;
|
|
}
|
|
|
|
//检查输入
|
|
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();
|
|
}
|