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.

197 lines
6.0 KiB
C++

#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;//±¸·ÝÐÞ¸Ä֮ǰµÄÐÅÏ¢
m_ArrayXcntZ = m_ObjComponentMgr.m_ArrayXcntZ;//X Õý·½ÏòÕóÁÐÊýÁ¿
m_ArrayXcntF = m_ObjComponentMgr.m_ArrayXcntF;//X ¸º·½ÏòÕóÁÐÊýÁ¿
m_ArrayYcntZ = m_ObjComponentMgr.m_ArrayYcntZ;//Y Õý·½ÏòÕóÁÐÊýÁ¿
m_ArrayYcntF = m_ObjComponentMgr.m_ArrayYcntF;//Y ¸º·½ÏòÕóÁÐÊýÁ¿
m_OffsetX = m_ObjComponentMgr.m_OffsetX;//X ·½Ïò¼ä¸ô
m_OffsetY = m_ObjComponentMgr.m_OffsetY;//Y ·½Ïò¼ä¸ô
//ÏÞ¶¨Ôª¼þµÄ·¶Î§
m_bUseArea = m_ObjComponentMgr.m_bUseArea;//ÊÇ·ñʹÓÃÏÞ¶¨·¶Î§
m_UseArea.SetCheck(m_bUseArea);
m_bRectArea = m_ObjComponentMgr.m_bRectArea;//true Ϊ¾ØÐη¶Î§,false ΪԲÐη¶Î§
m_bAutoArr = m_ObjComponentMgr.m_bAutoArray;
m_AutoArrOffset = m_ObjComponentMgr.m_AutoArrayGap;
//ÉèÖÿؼþ״̬
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;//·¶Î§µÄ»ù×¼µã
m_AreaSize = m_ObjComponentMgr.m_AreaSize;//¾ØÐη¶Î§µÄ³ß´ç
m_AreaRadius = m_ObjComponentMgr.m_AreaRadius;//Ô²Ðη¶Î§µÄÖ±¾¶
UpdateData(FALSE);
return TRUE;
}
#if 1//¹Û²ì
void CDlgObjComponentArr::OnBnClickedZoomOut()
{
GetCurViewPtr()->OnZoomOut();
}
void CDlgObjComponentArr::OnBnClickedZoomIn()
{
GetCurViewPtr()->OnZoomIn();
}
#endif
#if 1
void CDlgObjComponentArr::OnBnClickedUseArea()
{
UpdateData(TRUE);
m_bUseArea = m_UseArea.GetCheck();
}
//ÉèÖÿؼþ״̬
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;
//ÉèÖÿؼþ״̬
SetCtrlState();
}
void CDlgObjComponentArr::OnBnClickedCircle()
{
m_bRectArea = false;
//ÉèÖÿؼþ״̬
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 Õý·½ÏòÕóÁÐÊýÁ¿
m_ObjComponentMgr.m_ArrayXcntF = m_ArrayXcntF;//X ¸º·½ÏòÕóÁÐÊýÁ¿
m_ObjComponentMgr.m_ArrayYcntZ = m_ArrayYcntZ;//Y Õý·½ÏòÕóÁÐÊýÁ¿
m_ObjComponentMgr.m_ArrayYcntF = m_ArrayYcntF;//Y ¸º·½ÏòÕóÁÐÊýÁ¿
m_ObjComponentMgr.m_OffsetX = m_OffsetX;//X ·½Ïò¼ä¸ô
m_ObjComponentMgr.m_OffsetY = m_OffsetY;//Y ·½Ïò¼ä¸ô
//ÏÞ¶¨Ôª¼þµÄ·¶Î§
m_ObjComponentMgr.m_bUseArea = m_bUseArea;//ÊÇ·ñʹÓÃÏÞ¶¨·¶Î§
m_ObjComponentMgr.m_bRectArea = m_bRectArea;//true Ϊ¾ØÐη¶Î§,false ΪԲÐη¶Î§
m_ObjComponentMgr.m_bAutoArray = m_bAutoArr;
m_ObjComponentMgr.m_AutoArrayGap = m_AutoArrOffset;
m_ObjComponentMgr.m_AreaBasePt = m_AreaBasePt;//·¶Î§µÄ»ù×¼µã
m_ObjComponentMgr.m_AreaSize = m_AreaSize;//¾ØÐη¶Î§µÄ³ß´ç
m_ObjComponentMgr.m_AreaRadius = m_AreaRadius;//Ô²Ðη¶Î§µÄÖ±¾¶
//ÕóÁÐÔª¼þ
m_ObjComponentMgr.Array();
GetCurViewPtr()->RefreshView();
OnOK();
}
void CDlgObjComponentArr::OnBnClickedCancel()
{
m_ObjComponentMgr = m_ObjComponentMgrBak;//»Ö¸´
CDialogEx::OnCancel();
}
#endif