|
|
|
|
|
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "LaiPuLaser.h"
|
|
|
|
|
#include "DlgObjComponentArr.h"
|
|
|
|
|
#include "afxdialogex.h"
|
|
|
|
|
#include "GlobalFunction.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CDlgObjComponentArr, CDialogEx)
|
|
|
|
|
BEGIN_MESSAGE_MAP(CDlgObjComponentArr, CDialogEx)
|
|
|
|
|
ON_BN_CLICKED(ID_OK, &CDlgObjComponentArr::OnBnClickedOk)
|
|
|
|
|
ON_BN_CLICKED(IDC_ZOOM_IN, &CDlgObjComponentArr::OnBnClickedZoomIn)
|
|
|
|
|
ON_BN_CLICKED(IDC_ZOOM_OUT, &CDlgObjComponentArr::OnBnClickedZoomOut)
|
|
|
|
|
ON_BN_CLICKED(IDC_USE_AREA, &CDlgObjComponentArr::OnBnClickedUseArea)
|
|
|
|
|
ON_BN_CLICKED(IDC_RECT, &CDlgObjComponentArr::OnBnClickedRect)
|
|
|
|
|
ON_BN_CLICKED(IDC_CIRCLE, &CDlgObjComponentArr::OnBnClickedCircle)
|
|
|
|
|
ON_BN_CLICKED(IDCANCEL, &CDlgObjComponentArr::OnBnClickedCancel)
|
|
|
|
|
ON_BN_CLICKED(IDC_RADIO_ARRAY, &CDlgObjComponentArr::OnBnClickedRadioArray)
|
|
|
|
|
ON_BN_CLICKED(IDC_RADIO_AUTO_ARRAY, &CDlgObjComponentArr::OnBnClickedRadioAutoArray)
|
|
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
|
|
|
|
CDlgObjComponentArr::CDlgObjComponentArr(CObjComponentMgr &Mgr,CWnd* pParent /*=NULL*/)
|
|
|
|
|
: CDialogEx(CDlgObjComponentArr::IDD, pParent),m_ObjComponentMgr(Mgr)
|
|
|
|
|
{
|
|
|
|
|
m_AutoArrOffset = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CDlgObjComponentArr::~CDlgObjComponentArr()
|
|
|
|
|
{
|
|
|
|
|
GetCurViewPtr()->RefreshView();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CDlgObjComponentArr::DoDataExchange(CDataExchange* pDX)
|
|
|
|
|
{
|
|
|
|
|
CDialogEx::DoDataExchange(pDX);
|
|
|
|
|
|
|
|
|
|
DDX_Text(pDX, IDC_OFFSET_X, m_OffsetX);
|
|
|
|
|
DDX_Text(pDX, IDC_OFFSET_Y, m_OffsetY);
|
|
|
|
|
DDX_Text(pDX, IDC_AREA_CENTER_X, m_AreaBasePt.x);
|
|
|
|
|
DDX_Text(pDX, IDC_AREA_CENTER_Y, m_AreaBasePt.y);
|
|
|
|
|
DDX_Text(pDX, IDC_AREA_WIDTH, m_AreaSize.w);
|
|
|
|
|
DDX_Text(pDX, IDC_AREA_HEIGHT, m_AreaSize.h);
|
|
|
|
|
DDX_Text(pDX, IDC_AREA_DIA, m_AreaRadius);
|
|
|
|
|
|
|
|
|
|
DDX_Control(pDX, IDC_USE_AREA, m_UseArea);
|
|
|
|
|
DDX_Text(pDX, IDC_CNT_X_Z, m_ArrayXcntZ);
|
|
|
|
|
DDX_Text(pDX, IDC_CNT_X_F, m_ArrayXcntF);
|
|
|
|
|
DDX_Text(pDX, IDC_CNT_Y_Z, m_ArrayYcntZ);
|
|
|
|
|
DDX_Text(pDX, IDC_CNT_Y_F, m_ArrayYcntF);
|
|
|
|
|
DDX_Text(pDX, IDC_AUTO_ARR_OFFSET, m_AutoArrOffset);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
BOOL CDlgObjComponentArr::OnInitDialog()
|
|
|
|
|
{
|
|
|
|
|
CDialogEx::OnInitDialog();
|
|
|
|
|
|
|
|
|
|
m_ObjComponentMgrBak = m_ObjComponentMgr;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֮ǰ<D6AE><C7B0><EFBFBD><EFBFBD>Ϣ
|
|
|
|
|
|
|
|
|
|
m_ArrayXcntZ = m_ObjComponentMgr.m_ArrayXcntZ;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_ArrayXcntF = m_ObjComponentMgr.m_ArrayXcntF;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_ArrayYcntZ = m_ObjComponentMgr.m_ArrayYcntZ;//Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_ArrayYcntF = m_ObjComponentMgr.m_ArrayYcntF;//Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_OffsetX = m_ObjComponentMgr.m_OffsetX;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_OffsetY = m_ObjComponentMgr.m_OffsetY;//Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>ķ<EFBFBD>Χ
|
|
|
|
|
m_bUseArea = m_ObjComponentMgr.m_bUseArea;//<2F>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><DEB6><EFBFBD>Χ
|
|
|
|
|
m_UseArea.SetCheck(m_bUseArea);
|
|
|
|
|
m_bRectArea = m_ObjComponentMgr.m_bRectArea;//true Ϊ<><CEAA><EFBFBD>η<EFBFBD>Χ,false ΪԲ<CEAA>η<EFBFBD>Χ
|
|
|
|
|
m_bAutoArr = m_ObjComponentMgr.m_bAutoArray;
|
|
|
|
|
m_AutoArrOffset = m_ObjComponentMgr.m_AutoArrayGap;
|
|
|
|
|
//<2F><><EFBFBD>ÿؼ<C3BF>״̬
|
|
|
|
|
SetCtrlState();
|
|
|
|
|
|
|
|
|
|
if(m_bRectArea)
|
|
|
|
|
{
|
|
|
|
|
((CButton *)GetDlgItem(IDC_RECT))->SetCheck(TRUE);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
((CButton *)GetDlgItem(IDC_CIRCLE))->SetCheck(TRUE);
|
|
|
|
|
}
|
|
|
|
|
if(m_bAutoArr)
|
|
|
|
|
{
|
|
|
|
|
((CButton *)GetDlgItem(IDC_RADIO_AUTO_ARRAY))->SetCheck(TRUE);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
((CButton *)GetDlgItem(IDC_RADIO_ARRAY))->SetCheck(TRUE);
|
|
|
|
|
}
|
|
|
|
|
m_AreaBasePt = m_ObjComponentMgr.m_AreaBasePt;//<2F><>Χ<EFBFBD>Ļ<EFBFBD><EFBFBD><D7BC>
|
|
|
|
|
m_AreaSize = m_ObjComponentMgr.m_AreaSize;//<2F><><EFBFBD>η<EFBFBD>Χ<EFBFBD>ijߴ<C4B3>
|
|
|
|
|
m_AreaRadius = m_ObjComponentMgr.m_AreaRadius;//Բ<>η<EFBFBD>Χ<EFBFBD><CEA7>ֱ<EFBFBD><D6B1>
|
|
|
|
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
|
|
return TRUE;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if 1//<2F>۲<EFBFBD>
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedZoomOut()
|
|
|
|
|
{
|
|
|
|
|
GetCurViewPtr()->OnZoomOut();
|
|
|
|
|
}
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedZoomIn()
|
|
|
|
|
{
|
|
|
|
|
GetCurViewPtr()->OnZoomIn();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if 1
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedUseArea()
|
|
|
|
|
{
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
m_bUseArea = m_UseArea.GetCheck();
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD>ÿؼ<C3BF>״̬
|
|
|
|
|
void CDlgObjComponentArr::SetCtrlState()
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_AREA_WIDTH)->EnableWindow(true);
|
|
|
|
|
GetDlgItem(IDC_AREA_HEIGHT)->EnableWindow(true);
|
|
|
|
|
GetDlgItem(IDC_AREA_DIA)->EnableWindow(true);
|
|
|
|
|
if(m_bRectArea)
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_AREA_DIA)->EnableWindow(false);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_AREA_WIDTH)->EnableWindow(false);
|
|
|
|
|
GetDlgItem(IDC_AREA_HEIGHT)->EnableWindow(false);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GetDlgItem(IDC_OFFSET_X)->EnableWindow(true);
|
|
|
|
|
GetDlgItem(IDC_OFFSET_Y)->EnableWindow(true);
|
|
|
|
|
GetDlgItem(IDC_AUTO_ARR_OFFSET)->EnableWindow(true);
|
|
|
|
|
if(m_bAutoArr)
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_OFFSET_X)->EnableWindow(false);
|
|
|
|
|
GetDlgItem(IDC_OFFSET_Y)->EnableWindow(false);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
GetDlgItem(IDC_AUTO_ARR_OFFSET)->EnableWindow(false);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedRect()
|
|
|
|
|
{
|
|
|
|
|
m_bRectArea = true;
|
|
|
|
|
//<2F><><EFBFBD>ÿؼ<C3BF>״̬
|
|
|
|
|
SetCtrlState();
|
|
|
|
|
}
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedCircle()
|
|
|
|
|
{
|
|
|
|
|
m_bRectArea = false;
|
|
|
|
|
//<2F><><EFBFBD>ÿؼ<C3BF>״̬
|
|
|
|
|
SetCtrlState();
|
|
|
|
|
}
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedRadioArray()
|
|
|
|
|
{
|
|
|
|
|
m_bAutoArr = false;
|
|
|
|
|
SetCtrlState();
|
|
|
|
|
}
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedRadioAutoArray()
|
|
|
|
|
{
|
|
|
|
|
m_bAutoArr = true;
|
|
|
|
|
SetCtrlState();
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedOk()
|
|
|
|
|
{
|
|
|
|
|
UpdateData(TRUE);
|
|
|
|
|
m_ObjComponentMgr.m_ArrayXcntZ = m_ArrayXcntZ;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_ObjComponentMgr.m_ArrayXcntF = m_ArrayXcntF;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_ObjComponentMgr.m_ArrayYcntZ = m_ArrayYcntZ;//Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_ObjComponentMgr.m_ArrayYcntF = m_ArrayYcntF;//Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_ObjComponentMgr.m_OffsetX = m_OffsetX;//X <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_ObjComponentMgr.m_OffsetY = m_OffsetY;//Y <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><EFBFBD>Ԫ<EFBFBD><D4AA><EFBFBD>ķ<EFBFBD>Χ
|
|
|
|
|
m_ObjComponentMgr.m_bUseArea = m_bUseArea;//<2F>Ƿ<EFBFBD>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><DEB6><EFBFBD>Χ
|
|
|
|
|
m_ObjComponentMgr.m_bRectArea = m_bRectArea;//true Ϊ<><CEAA><EFBFBD>η<EFBFBD>Χ,false ΪԲ<CEAA>η<EFBFBD>Χ
|
|
|
|
|
m_ObjComponentMgr.m_bAutoArray = m_bAutoArr;
|
|
|
|
|
m_ObjComponentMgr.m_AutoArrayGap = m_AutoArrOffset;
|
|
|
|
|
m_ObjComponentMgr.m_AreaBasePt = m_AreaBasePt;//<2F><>Χ<EFBFBD>Ļ<EFBFBD><EFBFBD><D7BC>
|
|
|
|
|
m_ObjComponentMgr.m_AreaSize = m_AreaSize;//<2F><><EFBFBD>η<EFBFBD>Χ<EFBFBD>ijߴ<C4B3>
|
|
|
|
|
m_ObjComponentMgr.m_AreaRadius = m_AreaRadius;//Բ<>η<EFBFBD>Χ<EFBFBD><CEA7>ֱ<EFBFBD><D6B1>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>Ԫ<EFBFBD><D4AA>
|
|
|
|
|
m_ObjComponentMgr.Array();
|
|
|
|
|
|
|
|
|
|
GetCurViewPtr()->RefreshView();
|
|
|
|
|
OnOK();
|
|
|
|
|
}
|
|
|
|
|
void CDlgObjComponentArr::OnBnClickedCancel()
|
|
|
|
|
{
|
|
|
|
|
m_ObjComponentMgr = m_ObjComponentMgrBak;//<2F>ָ<EFBFBD>
|
|
|
|
|
CDialogEx::OnCancel();
|
|
|
|
|
}
|
|
|
|
|
#endif
|