|
|
|
|
#include "StdAfx.h"
|
|
|
|
|
#include "ProductMgr.h"
|
|
|
|
|
#include "Propertie.h"
|
|
|
|
|
#include "PropertieMgr.h"
|
|
|
|
|
#include "AuthorityMgr.h"
|
|
|
|
|
#include "GlobalFunction.h"
|
|
|
|
|
#include "CStringFuc.h"
|
|
|
|
|
#include "LogMgr.h"
|
|
|
|
|
#include "GlobalDrawMgr.h"
|
|
|
|
|
#include "DrawSimpleShape.h"
|
|
|
|
|
#include "ObjComponentMgr.h"
|
|
|
|
|
#include "PlatformXY.h"
|
|
|
|
|
#include "WorkFileMgr.h"
|
|
|
|
|
#include "ObjComponentMgr.h"
|
|
|
|
|
#include "Motor.h"
|
|
|
|
|
#include "Layer.h"
|
|
|
|
|
#include "CommandMgr.h"
|
|
|
|
|
#include "CameraHawkvis.h"
|
|
|
|
|
#include "MsgBox.h"
|
|
|
|
|
#include "ProgramCutMgr.h"
|
|
|
|
|
|
|
|
|
|
#define PRODUCT_STR _T("<22><><EFBFBD><EFBFBD>")
|
|
|
|
|
|
|
|
|
|
CProductMgr *gProductMgr = new CProductMgr;
|
|
|
|
|
CProductMgr::CProductMgr(void)
|
|
|
|
|
{
|
|
|
|
|
m_UseProductCnt = 1;//ʹ<>ù<EFBFBD><C3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_CurProductIdx = -1;//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
m_CurWorkTimes = 0;//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_TotalWorkTimes = 0;//<2F>ܼӹ<DCBC><D3B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_FocalAdjustCnt = 0;//<2F>佹<EFBFBD><E4BDB9><EFBFBD><EFBFBD>
|
|
|
|
|
m_FocalAdjustDis = 0;//<2F>佹<EFBFBD><E4BDB9><EFBFBD><EFBFBD>mm
|
|
|
|
|
m_BaseFocAdjustDis = 0;//<2F><><EFBFBD><D7BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mm
|
|
|
|
|
m_AngleAdjust = 0;//<2F>Ƕ<EFBFBD><EFBFBD><CEA2>ֵ
|
|
|
|
|
m_BasePtDir = _DIR_M;//<2F><>Ʒ<EFBFBD><C6B7><EFBFBD><D7BC><EFBFBD>ķ<EFBFBD><C4B7><EFBFBD>
|
|
|
|
|
m_MaxMarkDisDiff = 0.3;//<2F><><EFBFBD><EFBFBD>mark <20><>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ʵ<EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD><DBBE><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|
|
|
|
}
|
|
|
|
|
CProductMgr::~CProductMgr(void)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
#if 1//<2F><>дmodule <20>ĺ<EFBFBD><C4BA><EFBFBD>
|
|
|
|
|
void CProductMgr::Ini()
|
|
|
|
|
{
|
|
|
|
|
ResetProductVec(m_UseProductCnt);
|
|
|
|
|
GetFrame()->m_DlgCutDeviceCtrl.Update();
|
|
|
|
|
}
|
|
|
|
|
void CProductMgr::ResetProductVec(int cnt)
|
|
|
|
|
{
|
|
|
|
|
m_ProductVec.clear();
|
|
|
|
|
for(int i=0;i<cnt;i++)
|
|
|
|
|
{
|
|
|
|
|
CProduct Product;
|
|
|
|
|
m_ProductVec.push_back(Product);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
CMFCPropertyGridProperty *CProductMgr::CreatGridProperty()
|
|
|
|
|
{
|
|
|
|
|
CPropertieMgr &PropertieMgr = gDevicePropertieMgr;
|
|
|
|
|
|
|
|
|
|
CString PropertyName;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CString Description;//<2F><><EFBFBD><EFBFBD>
|
|
|
|
|
CString Path = _T("Product");//<2F>洢·<E6B4A2><C2B7>
|
|
|
|
|
CString Name;
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* pGroup = new CMFCPropertyGridProperty(PropertyName);
|
|
|
|
|
//-------------------------------------------------------------------------------//
|
|
|
|
|
if(gAuthorityMgr->CheckAuthority(_FACTORY))
|
|
|
|
|
{
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_UseProductCnt");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_UseProductCnt);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_INT);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD>ǰ<EFBFBD>о<EFBFBD>֧<EFBFBD>ֹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C>ĺ<DEB8><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_UseProductCnt, Description);
|
|
|
|
|
//p->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_ProductSize_w");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_ProductSize.w);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD>ǰ<EFBFBD>о߹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijߴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>mm");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_ProductSize.w, Description);
|
|
|
|
|
//p->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_ProductSize_h");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_ProductSize.h);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߶<EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD>ǰ<EFBFBD>о߹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ijߴ<EFBFBD><EFBFBD>߶<EFBFBD>mm");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_ProductSize.h, Description);
|
|
|
|
|
//p->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_TotalWorkTimes");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_TotalWorkTimes);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_INT);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD>ܼӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD>ǰ<EFBFBD>ܹ<EFBFBD><EFBFBD>ļӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_TotalWorkTimes, Description);
|
|
|
|
|
//p->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_AngleAdjust");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_AngleAdjust);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD>Ƕ<EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD>Ʒƫ<EFBFBD>ƽǶȵ<EFBFBD><EFBFBD><EFBFBD>ֵ(<28><><EFBFBD><EFBFBD>ֵ)");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_AngleAdjust, Description);
|
|
|
|
|
//p->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_MaxMarkDisDiff");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_MaxMarkDisDiff);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("mark<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mark <20><>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>ʵ<EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۾<EFBFBD><DBBE><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>λ:mm)");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_MaxMarkDisDiff, Description);
|
|
|
|
|
//p->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(PropertyName);
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_BaseFocAdjustDis");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_BaseFocAdjustDis);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD>豸<EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><>λ:mm)");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_BaseFocAdjustDis, Description);
|
|
|
|
|
pGroup1->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_FocalAdjustCnt");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_FocalAdjustCnt);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_INT);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD>佹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD>ڱȽϺ<EFBFBD><EFBFBD>IJ<EFBFBD>Ʒ,<2C>ӹ<EFBFBD>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬<EFBFBD>ٴμӹ<CEBC>");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_FocalAdjustCnt, Description);
|
|
|
|
|
p->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup1->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = _T("m_FocalAdjustDis");//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&m_FocalAdjustDis);
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD>佹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD>Ӧ<EFBFBD>佹<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD>ν<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>,<2C><><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>(<28><>λ:mm)");
|
|
|
|
|
CMFCPropertyGridProperty* p = new CMFCPropertyGridProperty(PropertyName, (_variant_t)m_FocalAdjustDis, Description);
|
|
|
|
|
pGroup1->AddSubItem(p);
|
|
|
|
|
PropertieMgr.Insert(p, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pGroup->AddSubItem(pGroup1);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD>λ<EFBFBD><EFBFBD>");
|
|
|
|
|
CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(PropertyName);
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_TheoryMarkPt1_x";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(m_TheoryMarkPt1.x));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("mark1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>X");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mark <20><>1<EFBFBD><31><EFBFBD><EFBFBD>X(<28>Զ<EFBFBD>)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_TheoryMarkPt1.x, Description);
|
|
|
|
|
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_TheoryMarkPt1_y";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(m_TheoryMarkPt1.y));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("mark1<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mark <20><>1<EFBFBD><31><EFBFBD><EFBFBD>Y(<28>Զ<EFBFBD>)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_TheoryMarkPt1.y, Description);
|
|
|
|
|
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_TheoryMarkPt2_x";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(m_TheoryMarkPt2.x));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("mark2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>X");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mark <20><>2<EFBFBD><32><EFBFBD><EFBFBD>X(<28>Զ<EFBFBD>)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_TheoryMarkPt2.x, Description);
|
|
|
|
|
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_TheoryMarkPt2_y";//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(m_TheoryMarkPt2.y));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("mark2<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>mark <20><>2<EFBFBD><32><EFBFBD><EFBFBD>Y(<28>Զ<EFBFBD>)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_TheoryMarkPt2.y, Description);
|
|
|
|
|
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
pGroup->AddSubItem(pGroup1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int size = m_ProductVec.size();
|
|
|
|
|
for(int i=0;i<size;i++)
|
|
|
|
|
{
|
|
|
|
|
CString Idx;
|
|
|
|
|
Idx.Format("%ld",i+1);
|
|
|
|
|
PropertyName = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + Idx;
|
|
|
|
|
|
|
|
|
|
CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(PropertyName);
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_ProductVec_bUsed" + Idx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(m_ProductVec[i].m_bUsed));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_BOOL);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X (mm)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)m_ProductVec[i].m_bUsed, Description);
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
Dbxy &BasePt = m_ProductVec[i].GetProductBasePt();
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_ProductVec_X" + Idx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(BasePt.x));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>X (mm)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)BasePt.x, Description);
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_ProductVec_Y" + Idx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(BasePt.y));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
pPropertie->SetPath(Path);
|
|
|
|
|
pPropertie->SetName(Name);
|
|
|
|
|
pPropertie->WriteRead(true);//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ̨ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Y (mm)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)BasePt.y, Description);
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
Dbxy &Offset = m_ProductVec[i].GetOffset();
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_Offset_X" + Idx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(Offset.x));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("ƫ<EFBFBD><EFBFBD>X");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD>ƫ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>X (mm)(<28>Զ<EFBFBD>)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)Offset.x, Description);
|
|
|
|
|
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_Offset_Y" + Idx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(Offset.y));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("ƫ<EFBFBD><EFBFBD>Y");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD>ƫ<EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>Y (mm)(<28>Զ<EFBFBD>)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)Offset.y, Description);
|
|
|
|
|
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
double Angle = m_ProductVec[i].GetRotateAng();
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1><EFBFBD>ӳ<EFBFBD><D3B3>
|
|
|
|
|
Name = "m_Angle_Y" + Idx;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
CPropertie *pPropertie = new CPropertie;
|
|
|
|
|
pPropertie->SetpVal((void*)&(Angle));
|
|
|
|
|
pPropertie->SetType(_PROP_TYPE_DOUBLE);
|
|
|
|
|
pPropertie->SetpModule(this);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ
|
|
|
|
|
PropertyName = _T("<EFBFBD><EFBFBD>ת<EFBFBD>Ƕ<EFBFBD>");
|
|
|
|
|
Description = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƕ<EFBFBD>(<28>Զ<EFBFBD>)");
|
|
|
|
|
CMFCPropertyGridProperty* p1 = new CMFCPropertyGridProperty(PropertyName,(_variant_t)Angle, Description);
|
|
|
|
|
p1->AllowEdit(FALSE);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
pGroup1->AddSubItem(p1);
|
|
|
|
|
PropertieMgr.Insert(p1, pPropertie);
|
|
|
|
|
}
|
|
|
|
|
pGroup->AddSubItem(pGroup1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return pGroup;
|
|
|
|
|
}
|
|
|
|
|
void CProductMgr::InsertProduct(CMFCPropertyGridProperty* p)
|
|
|
|
|
{
|
|
|
|
|
for(int i=0;i<m_UseProductCnt;i++)
|
|
|
|
|
{
|
|
|
|
|
CString Idx;
|
|
|
|
|
Idx.Format("%ld",i+1);
|
|
|
|
|
CString str = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD>" + Idx;
|
|
|
|
|
p->AddOption(str);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void CProductMgr::ExportPar(ofstream *pFile)
|
|
|
|
|
{
|
|
|
|
|
(*pFile)<<"[ģ<><C4A3>] [CProductMgr]------------------------------------------------"<<endl;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1
|
|
|
|
|
void CProductMgr::WriteWorkFileExt(vector<CLab> &LabVec)
|
|
|
|
|
{
|
|
|
|
|
//<2F><>ȡҲҪ<D2B2><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_TheoryMarkPt1.x));
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_TheoryMarkPt1.y));
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_TheoryMarkPt2.x));
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_TheoryMarkPt2.y));
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_BaseFocAdjustDis));
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_FocalAdjustCnt));
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_FocalAdjustDis));
|
|
|
|
|
LabVec.push_back(CLab(LAB_NULL,m_UseProductCnt));
|
|
|
|
|
for(int i=0;i<m_UseProductCnt;i++)
|
|
|
|
|
{
|
|
|
|
|
LabVec.push_back(CLab(LAB_PRODUCT_START));
|
|
|
|
|
m_ProductVec[i].WriteWorkFile(LabVec);
|
|
|
|
|
LabVec.push_back(CLab(LAB_PRODUCT_END));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void CProductMgr::ReadWorkFile(CLabVecRang &LabVecRang)
|
|
|
|
|
{
|
|
|
|
|
int idx = LabVecRang.GetStart()+1;
|
|
|
|
|
m_TheoryMarkPt1.x = LabVecRang.GetDouble(idx++);
|
|
|
|
|
m_TheoryMarkPt1.y = LabVecRang.GetDouble(idx++);
|
|
|
|
|
m_TheoryMarkPt2.x = LabVecRang.GetDouble(idx++);
|
|
|
|
|
m_TheoryMarkPt2.y = LabVecRang.GetDouble(idx++);
|
|
|
|
|
SetTheoryMarkPt(m_TheoryMarkPt1,m_TheoryMarkPt2);
|
|
|
|
|
m_BaseFocAdjustDis = LabVecRang.GetDouble(idx++);
|
|
|
|
|
m_FocalAdjustCnt = LabVecRang.GetInt(idx++);
|
|
|
|
|
m_FocalAdjustDis = LabVecRang.GetDouble(idx++);
|
|
|
|
|
|
|
|
|
|
m_UseProductCnt = LabVecRang.GetInt(idx++);
|
|
|
|
|
ResetProductVec(m_UseProductCnt);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vector<CLabVecRang> LabVecRangVec;
|
|
|
|
|
CWorkFileMgr WorkFileMgr;
|
|
|
|
|
WorkFileMgr.SeparateStrVec(LabVecRang,LabVecRangVec,LAB_PRODUCT_START,LAB_PRODUCT_END);
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF>ģ<EFBFBD><C4A3>
|
|
|
|
|
if(!LabVecRangVec.empty())
|
|
|
|
|
{
|
|
|
|
|
size_t size = LabVecRangVec.size();
|
|
|
|
|
for(size_t i=0;i<size;i++)
|
|
|
|
|
{
|
|
|
|
|
m_ProductVec[i].ReadWorkFile(LabVecRangVec[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1
|
|
|
|
|
//<2F><><EFBFBD>ƶ<EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
void CProductMgr::DrawMarkPoint(CDC* pDC,Dbxy pt,CString str)
|
|
|
|
|
{
|
|
|
|
|
if(!IsDbxyZero(pt))
|
|
|
|
|
{
|
|
|
|
|
DbRect Rect(pt,gDraw->GetCatchNodeSize());
|
|
|
|
|
DrawCrossX(pDC,gDraw->GetMarkPointPen(),Rect);
|
|
|
|
|
gDraw->DrawTxt(pDC,str,pt);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void CProductMgr::Draw(CDC* pDC)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
DbRect CProductMgr::GetRect(Dbxy pt)
|
|
|
|
|
{
|
|
|
|
|
DbRect rect;
|
|
|
|
|
switch(m_BasePtDir)
|
|
|
|
|
{
|
|
|
|
|
case _DIR_M:
|
|
|
|
|
rect.L = pt.x - m_ProductSize.w/2;
|
|
|
|
|
rect.T = pt.y + m_ProductSize.h/2;
|
|
|
|
|
rect.R = pt.x + m_ProductSize.w/2;
|
|
|
|
|
rect.B = pt.y - m_ProductSize.h/2;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_LT:
|
|
|
|
|
rect.L = pt.x;
|
|
|
|
|
rect.T = pt.y;
|
|
|
|
|
rect.R = pt.x + m_ProductSize.w;
|
|
|
|
|
rect.B = pt.y - m_ProductSize.h;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_LB:
|
|
|
|
|
rect.L = pt.x;
|
|
|
|
|
rect.B = pt.y;
|
|
|
|
|
rect.R = pt.x + m_ProductSize.w;
|
|
|
|
|
rect.T = pt.y + m_ProductSize.h;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_RT:
|
|
|
|
|
rect.R = pt.x;
|
|
|
|
|
rect.T = pt.y;
|
|
|
|
|
rect.L = pt.x - m_ProductSize.w;
|
|
|
|
|
rect.B = pt.y - m_ProductSize.h;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_RB:
|
|
|
|
|
rect.R = pt.x;
|
|
|
|
|
rect.B = pt.y;
|
|
|
|
|
rect.L = pt.x - m_ProductSize.w;
|
|
|
|
|
rect.T = pt.y + m_ProductSize.h;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return rect;
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#if 1
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>۶<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CProductMgr::ReSetTheoryMarkPt()
|
|
|
|
|
{
|
|
|
|
|
m_TheoryMarkPt1.x = 0;
|
|
|
|
|
m_TheoryMarkPt1.y = 0;
|
|
|
|
|
m_TheoryMarkPt2.x = 0;
|
|
|
|
|
m_TheoryMarkPt2.y = 0;
|
|
|
|
|
|
|
|
|
|
for(int i=0;i<m_UseProductCnt;i++)
|
|
|
|
|
{
|
|
|
|
|
m_ProductVec[i].SetTheoryMarkPt(m_TheoryMarkPt1,m_TheoryMarkPt2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD>ö<EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CProductMgr::SetTheoryMarkPt(Dbxy pt1,Dbxy pt2)
|
|
|
|
|
{
|
|
|
|
|
if(pt1.x>pt2.x)//<2F><>֤<EFBFBD><D6A4>λ<EFBFBD><CEBB>1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
SwapTwoPt(pt1,pt2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_TheoryMarkPt1 = pt1;
|
|
|
|
|
m_TheoryMarkPt2 = pt2;
|
|
|
|
|
|
|
|
|
|
for(int i=0;i<m_UseProductCnt;i++)
|
|
|
|
|
{
|
|
|
|
|
m_ProductVec[i].SetTheoryMarkPt(pt1,pt2);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Dbxy CProductMgr::TheoryPtToRealPt(Dbxy TheoryMarkPt)
|
|
|
|
|
{
|
|
|
|
|
return m_ProductVec[m_CurProductIdx].TheoryPtToRealPt(TheoryMarkPt);
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CProductMgr::TheoryDataToRealData(vector<vector<Dbxy>> &vec,Dbxy &Offset)
|
|
|
|
|
{
|
|
|
|
|
vector<vector<Dbxy>>::iterator iter = vec.begin();
|
|
|
|
|
vector<vector<Dbxy>>::iterator iter_end = vec.end();
|
|
|
|
|
for(;iter!=iter_end;iter++)
|
|
|
|
|
{
|
|
|
|
|
TheoryDataToRealData(*iter,Offset);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊʵ<CEAA><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CProductMgr::TheoryDataToRealData(vector<Dbxy> &vec,Dbxy &Offset)
|
|
|
|
|
{
|
|
|
|
|
vector<Dbxy>::iterator iter = vec.begin();
|
|
|
|
|
vector<Dbxy>::iterator iter_end = vec.end();
|
|
|
|
|
for(;iter!=iter_end;iter++)
|
|
|
|
|
{
|
|
|
|
|
(*iter) = TheoryPtToRealPt((*iter));
|
|
|
|
|
(*iter).x += Offset.x;
|
|
|
|
|
(*iter).y += Offset.y;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1>ǰʹ<C7B0>õ<EFBFBD>product <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
int CProductMgr::GetUsedProductCnt()
|
|
|
|
|
{
|
|
|
|
|
int cnt = 0;
|
|
|
|
|
for(int i=0;i<m_UseProductCnt;i++)
|
|
|
|
|
{
|
|
|
|
|
if(m_ProductVec[i].IsUsed())
|
|
|
|
|
cnt++;
|
|
|
|
|
}
|
|
|
|
|
return cnt;
|
|
|
|
|
}
|
|
|
|
|
void CProductMgr::ResetRealMarkPt()
|
|
|
|
|
{
|
|
|
|
|
vector<CProduct>::iterator iter = m_ProductVec.begin();
|
|
|
|
|
vector<CProduct>::iterator iter_end = m_ProductVec.end();
|
|
|
|
|
for(;iter!=iter_end;iter++)
|
|
|
|
|
{
|
|
|
|
|
(*iter).ResetRealMarkPt();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CProductMgr::WorkTimesInc()
|
|
|
|
|
{
|
|
|
|
|
m_CurWorkTimes++;//<2F>ӹ<EFBFBD><D3B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
m_TotalWorkTimes++;//<2F>ܼӹ<DCBC><D3B9><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//<2F>ƶ<EFBFBD>obj <20><><EFBFBD>оߵĻ<DFB5><EFBFBD><D7BC>
|
|
|
|
|
void CProductMgr::MoveObjToBasePt(Dbxy BasePt)
|
|
|
|
|
{
|
|
|
|
|
int size = m_ProductVec.size();
|
|
|
|
|
if(size<=0)
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>obj <20><>rect
|
|
|
|
|
CLayer &layer = GetLayerInstance();
|
|
|
|
|
CObjContainer &ObjContainer = layer.GetObjContainer();
|
|
|
|
|
ObjContainer.SelAllObj();
|
|
|
|
|
DbRect rect = ObjContainer.GetSelObjRect();
|
|
|
|
|
|
|
|
|
|
//<2F>ƶ<EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|
|
|
|
Dbxy MovePt;
|
|
|
|
|
switch(m_BasePtDir)
|
|
|
|
|
{
|
|
|
|
|
case _DIR_M:
|
|
|
|
|
MovePt.x = (rect.R+rect.L)/2;
|
|
|
|
|
MovePt.y = (rect.T+rect.B)/2;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_LT:
|
|
|
|
|
MovePt.x = rect.L;
|
|
|
|
|
MovePt.y = rect.T;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_LB:
|
|
|
|
|
MovePt.x = rect.L;
|
|
|
|
|
MovePt.y = rect.B;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_RT:
|
|
|
|
|
MovePt.x = rect.R;
|
|
|
|
|
MovePt.y = rect.T;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_RB:
|
|
|
|
|
MovePt.x = rect.R;
|
|
|
|
|
MovePt.y = rect.B;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Dbxy Offset;
|
|
|
|
|
Offset.x = BasePt.x - MovePt.x;
|
|
|
|
|
Offset.y = BasePt.y - MovePt.y;
|
|
|
|
|
//<2F>ƶ<EFBFBD>
|
|
|
|
|
layer.OnMove(Offset.x,Offset.y,true);
|
|
|
|
|
gObjComponentMgr->OnMove(Offset);
|
|
|
|
|
|
|
|
|
|
CString s;
|
|
|
|
|
s.Format(_T("Move Obj [Offset_x]= %f,[Offset_y]= %f"),Offset.x,Offset.y);
|
|
|
|
|
gLogMgr->WriteDebugLog(s);
|
|
|
|
|
|
|
|
|
|
gCommandMgr.DelAllCmd();//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8>
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>product <20><><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
int CProductMgr::GetCurProductIdx()
|
|
|
|
|
{
|
|
|
|
|
int size = m_ProductVec.size();
|
|
|
|
|
if(m_CurProductIdx>=0 && m_CurProductIdx<size)
|
|
|
|
|
return m_CurProductIdx;
|
|
|
|
|
return -1;
|
|
|
|
|
}
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>product <20><>״̬(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>product)
|
|
|
|
|
void CProductMgr::UpdateProductState()
|
|
|
|
|
{
|
|
|
|
|
gLogMgr->WriteDebugLog("CProductMgr::UpdateProductState");
|
|
|
|
|
int size = m_ProductVec.size();
|
|
|
|
|
int LastIdx = -1;
|
|
|
|
|
for(int k=0;k<size;k++)
|
|
|
|
|
{
|
|
|
|
|
m_ProductVec[k].SetbLastOne(false);
|
|
|
|
|
if(m_ProductVec[k].IsUsed())//ʹ<>õ<EFBFBD>product <20>ű<EFBFBD><C5B1><EFBFBD>
|
|
|
|
|
LastIdx = k;
|
|
|
|
|
}
|
|
|
|
|
if(LastIdx>=0)
|
|
|
|
|
m_ProductVec[LastIdx].SetbLastOne(true);
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ȡĬ<C8A1>ϵĻ<CFB5><C4BB><EFBFBD>λ<EFBFBD><CEBB>
|
|
|
|
|
Dbxy CProductMgr::GetDefualtBasePt()
|
|
|
|
|
{
|
|
|
|
|
Dbxy pt;
|
|
|
|
|
switch(m_BasePtDir)
|
|
|
|
|
{
|
|
|
|
|
case _DIR_M:
|
|
|
|
|
pt.x = (m_DefualtRect.R+m_DefualtRect.L)/2;
|
|
|
|
|
pt.y = (m_DefualtRect.T+m_DefualtRect.B)/2;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_LT:
|
|
|
|
|
pt.x = m_DefualtRect.L;
|
|
|
|
|
pt.y = m_DefualtRect.T;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_LB:
|
|
|
|
|
pt.x = m_DefualtRect.L;
|
|
|
|
|
pt.y = m_DefualtRect.B;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_RT:
|
|
|
|
|
pt.x = m_DefualtRect.R;
|
|
|
|
|
pt.y = m_DefualtRect.T;
|
|
|
|
|
break;
|
|
|
|
|
case _DIR_RB:
|
|
|
|
|
pt.x = m_DefualtRect.R;
|
|
|
|
|
pt.y = m_DefualtRect.B;
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
return pt;
|
|
|
|
|
}
|
|
|
|
|
#if 1
|
|
|
|
|
//ͨ<><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>product<63><74><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ץȡƫ<C8A1><C6AB>
|
|
|
|
|
//mark 1<>ƶ<EFBFBD><C6B6><EFBFBD>CCD <20><><EFBFBD><EFBFBD>,Ȼ<><C8BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CProductMgr::SetProductCenterPt()
|
|
|
|
|
{
|
|
|
|
|
//<2F><>ǰʵ<C7B0>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
Dbxy CurPlatCoord = gPlatformXY->GetCoord();
|
|
|
|
|
|
|
|
|
|
CProduct &Product = m_ProductVec[0];
|
|
|
|
|
bool bETrackType_Track_2 = (CurPlatCoord.y>200);//<2F><>X2 <20><><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>ǰproduct <20>Ļ<EFBFBD><EFBFBD><D7BC><EFBFBD><EFBFBD>
|
|
|
|
|
Dbxy CurBasePt = Product.GetProductBasePt();
|
|
|
|
|
if(bETrackType_Track_2)
|
|
|
|
|
{
|
|
|
|
|
Dbxy Track2Offset = gProgram_SZ_XL->GetTrack2Offset();
|
|
|
|
|
CurBasePt.x += Track2Offset.x;
|
|
|
|
|
CurBasePt.y += Track2Offset.y;
|
|
|
|
|
}
|
|
|
|
|
gProgramCutMgr->MoveObjData(CurBasePt);
|
|
|
|
|
|
|
|
|
|
Dbxy MarkPt1;
|
|
|
|
|
Dbxy MarkPt2;
|
|
|
|
|
if(gObjComponentMgr->GetTwoMarkPt(MarkPt1,MarkPt2)==false)
|
|
|
|
|
{
|
|
|
|
|
CMsgBox MsgBox;
|
|
|
|
|
MsgBox.Show("û<EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD>!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CCamera &Camera = *gCameraHawkvis;
|
|
|
|
|
Dbxy CameraPt = Camera.GetCenterPt();
|
|
|
|
|
|
|
|
|
|
Dbxy PlatCoord;//MarkPt1 <20>Ƶ<EFBFBD>Camera <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ
|
|
|
|
|
PlatCoord.x = CameraPt.x - MarkPt1.x;
|
|
|
|
|
PlatCoord.y = MarkPt1.y - CameraPt.y;
|
|
|
|
|
|
|
|
|
|
Dbxy Offset;//<2F>ƶ<EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD>
|
|
|
|
|
Offset.x = PlatCoord.x - CurPlatCoord.x;
|
|
|
|
|
Offset.y = CurPlatCoord.y - PlatCoord.y;
|
|
|
|
|
|
|
|
|
|
CurBasePt.x += Offset.x;
|
|
|
|
|
CurBasePt.y += Offset.y;
|
|
|
|
|
|
|
|
|
|
if(bETrackType_Track_2)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
Dbxy Track2Offset = gProgram_SZ_XL->GetTrack2Offset();
|
|
|
|
|
CurBasePt.x -= Track2Offset.x;
|
|
|
|
|
CurBasePt.y -= Track2Offset.y;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Product.SetBasePt(CurBasePt);
|
|
|
|
|
|
|
|
|
|
gDevicePropertieMgr.SaveAllPropertie();
|
|
|
|
|
|
|
|
|
|
CMsgBox MsgBox;
|
|
|
|
|
MsgBox.Show("λ<EFBFBD>õ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif
|