|
|
|
|
|
#include "stdafx.h"
|
|
|
#include "LaiPuLaser.h"
|
|
|
#include "DlgMarkArea.h"
|
|
|
#include "afxdialogex.h"
|
|
|
#include "GlobalFunction.h"
|
|
|
#include "MsgBox.h"
|
|
|
#include "LogMgr.h"
|
|
|
#include "ObjComponentMgr.h"
|
|
|
#include "AuthorityMgr.h"
|
|
|
#include "FileMgr.h"
|
|
|
#include "EnumDirection.h"
|
|
|
#include "MarkAreaMgr.h"
|
|
|
#include "Mirror.h"
|
|
|
|
|
|
|
|
|
|
|
|
IMPLEMENT_DYNAMIC(CDlgMarkArea, CDialogEx)
|
|
|
BEGIN_MESSAGE_MAP(CDlgMarkArea, CDialogEx)
|
|
|
ON_BN_CLICKED(IDC_NEW, &CDlgMarkArea::OnBnClickedNew)
|
|
|
ON_BN_CLICKED(IDC_DELETE, &CDlgMarkArea::OnBnClickedDelete)
|
|
|
ON_BN_CLICKED(IDC_COMMIT, &CDlgMarkArea::OnBnClickedCommit)
|
|
|
ON_BN_CLICKED(IDC_UP_BTN, &CDlgMarkArea::OnBnClickedUpBtn)
|
|
|
ON_BN_CLICKED(IDC_DOWN_BTN, &CDlgMarkArea::OnBnClickedDownBtn)
|
|
|
ON_BN_CLICKED(IDC_LEFT_BTN, &CDlgMarkArea::OnBnClickedLeftBtn)
|
|
|
ON_BN_CLICKED(IDC_RIGHT_BTN, &CDlgMarkArea::OnBnClickedRightBtn)
|
|
|
ON_NOTIFY(NM_CLICK, IDC_BASE_OBJ_LIST, &CDlgMarkArea::OnNMClickValStrList)
|
|
|
ON_BN_CLICKED(IDC_MOVE_UP, &CDlgMarkArea::OnBnClickedMoveUp)
|
|
|
ON_BN_CLICKED(IDC_MOVE_DOWN, &CDlgMarkArea::OnBnClickedMoveDown)
|
|
|
ON_BN_CLICKED(IDC_ZOOM_OUT, &CDlgMarkArea::OnBnClickedZoomOut)
|
|
|
ON_BN_CLICKED(IDC_ZOOM_IN, &CDlgMarkArea::OnBnClickedZoomIn)
|
|
|
ON_BN_CLICKED(IDC_SHOW_AREA, &CDlgMarkArea::OnBnClickedShowArea)
|
|
|
ON_BN_CLICKED(IDC_DEL_ALL, &CDlgMarkArea::OnBnClickedDelAll)
|
|
|
ON_BN_CLICKED(IDCANCEL, &CDlgMarkArea::OnBnClickedCancel)
|
|
|
ON_BN_CLICKED(IDOK, &CDlgMarkArea::OnBnClickedOk)
|
|
|
ON_BN_CLICKED(IDC_READ_FILE, &CDlgMarkArea::OnBnClickedReadFile)
|
|
|
ON_BN_CLICKED(IDC_SAVE_FILE, &CDlgMarkArea::OnBnClickedSaveFile)
|
|
|
ON_BN_CLICKED(IDC_BY_OBJ, &CDlgMarkArea::OnBnClickedByObj)
|
|
|
ON_BN_CLICKED(IDC_ARRAY_CREAT, &CDlgMarkArea::OnBnClickedArrayCreat)
|
|
|
ON_BN_CLICKED(IDC_SET_SIZE, &CDlgMarkArea::OnBnClickedSetSize)
|
|
|
ON_BN_CLICKED(IDC_CREAT_CROSS, &CDlgMarkArea::OnBnClickedCreatCross)
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
CDlgMarkArea::CDlgMarkArea(CMarkAreaMgr &Mgr,CWnd* pParent /*=NULL*/)
|
|
|
: CDialogEx(CDlgMarkArea::IDD, pParent),m_Mgr(Mgr)
|
|
|
{
|
|
|
m_CntX = 4;
|
|
|
m_CntY = 3;
|
|
|
}
|
|
|
|
|
|
CDlgMarkArea::~CDlgMarkArea()
|
|
|
{
|
|
|
m_Mgr.SetbDrawIdx(false);
|
|
|
GetCurViewPtr()->RefreshView();
|
|
|
}
|
|
|
|
|
|
void CDlgMarkArea::DoDataExchange(CDataExchange* pDX)
|
|
|
{
|
|
|
CDialogEx::DoDataExchange(pDX);
|
|
|
DDX_Control(pDX, IDC_LEFT_BTN, m_XLeftBtn);
|
|
|
DDX_Control(pDX, IDC_RIGHT_BTN, m_XRightBtn);
|
|
|
DDX_Control(pDX, IDC_UP_BTN, m_XTopBtn);
|
|
|
DDX_Control(pDX, IDC_DOWN_BTN, m_XDownBtn);
|
|
|
DDX_Text(pDX, IDC_MOVE_DIS, m_MoveDis);
|
|
|
|
|
|
DDX_Control(pDX, IDC_BASE_OBJ_LIST, m_List);
|
|
|
DDX_Text(pDX, IDC_CENTER_X, m_CurObj.m_BasePt.x);
|
|
|
DDX_Text(pDX, IDC_CENTER_Y, m_CurObj.m_BasePt.y);
|
|
|
DDX_Text(pDX, IDC_OFFSET_X, m_CurObj.m_Offset.x);
|
|
|
DDX_Text(pDX, IDC_OFFSET_Y, m_CurObj.m_Offset.y);
|
|
|
DDX_Text(pDX, IDC_OFFSET_X2, m_CurObj.m_Offset2.x);
|
|
|
DDX_Text(pDX, IDC_OFFSET_Y2, m_CurObj.m_Offset2.y);
|
|
|
DDX_Text(pDX, IDC_AREA_W, m_CurObj.m_Size.w);
|
|
|
DDX_Text(pDX, IDC_AREA_H, m_CurObj.m_Size.h);
|
|
|
|
|
|
DDX_Control(pDX, IDC_SHOW_AREA, m_ShowArea);
|
|
|
DDX_Text(pDX, IDC_CNT_X, m_CntX);
|
|
|
DDX_Text(pDX, IDC_CNT_Y, m_CntY);
|
|
|
DDX_Control(pDX, IDC_ALL_AREA_MOVE_CHECK, m_AllAreaMove);
|
|
|
|
|
|
}
|
|
|
|
|
|
BOOL CDlgMarkArea::OnInitDialog()
|
|
|
{
|
|
|
CDialogEx::OnInitDialog();
|
|
|
m_MoveDis = 10;//<2F>ƶ<EFBFBD><C6B6>ľ<EFBFBD><C4BE><EFBFBD>(mm)
|
|
|
m_XLeftBtn.LoadBitmaps(IDB_LEFT_BTN,IDB_LEFT_DOWN_BTN,IDB_LEFT_BTN,IDB_LEFT_BTN);
|
|
|
m_XRightBtn.LoadBitmaps(IDB_RIGHT_BTN,IDB_RIGHT_BTN_DOWN,IDB_RIGHT_BTN,IDB_RIGHT_BTN);
|
|
|
m_XTopBtn.LoadBitmaps(IDB_TOP_BTN,IDB_TOP_DOWN_BTN,IDB_TOP_BTN,IDB_TOP_BTN);
|
|
|
m_XDownBtn.LoadBitmaps(IDB_DOWN_BTN,IDB_DOWN_DOWN_BTN,IDB_DOWN_BTN,IDB_DOWN_BTN);
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>б<EFBFBD>
|
|
|
IniList();
|
|
|
|
|
|
|
|
|
m_OldMgr = m_Mgr;//<2F><><EFBFBD>ݶ<EFBFBD><DDB6><EFBFBD>
|
|
|
UpdateAreaList();
|
|
|
|
|
|
//<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ
|
|
|
m_ShowArea.SetCheck(m_Mgr.GetbDraw());
|
|
|
m_Mgr.SetbDrawIdx(true);
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
return TRUE;
|
|
|
}
|
|
|
#if 1
|
|
|
//<2F><>ʼ<EFBFBD><CABC><EFBFBD>б<EFBFBD>
|
|
|
void CDlgMarkArea::IniList()
|
|
|
{
|
|
|
//<2F><><EFBFBD>÷<EFBFBD><C3B7><EFBFBD>
|
|
|
m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
int idx = 0;
|
|
|
int w = 80;
|
|
|
m_List.InsertColumn(idx,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",LVCFMT_CENTER,40,-1);
|
|
|
idx++;
|
|
|
m_List.InsertColumn(idx,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1ƫ<EFBFBD><EFBFBD>X",LVCFMT_CENTER,w,-1);
|
|
|
idx++;
|
|
|
m_List.InsertColumn(idx,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>1ƫ<EFBFBD><EFBFBD>Y",LVCFMT_CENTER,w,-1);
|
|
|
idx++;
|
|
|
m_List.InsertColumn(idx,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2ƫ<EFBFBD><EFBFBD>X",LVCFMT_CENTER,w,-1);
|
|
|
idx++;
|
|
|
m_List.InsertColumn(idx,"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>2ƫ<EFBFBD><EFBFBD>Y",LVCFMT_CENTER,w,-1);
|
|
|
idx++;
|
|
|
}
|
|
|
//ˢ<>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|
|
void CDlgMarkArea::UpdateAreaList()
|
|
|
{
|
|
|
m_List.DeleteAllItems();
|
|
|
m_Mgr.InsertList(m_List);
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD><D0B1><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>
|
|
|
m_List.SetItemState(m_CurSelListIdx,LVIS_SELECTED|LVIS_FOCUSED,LVIS_SELECTED|LVIS_FOCUSED);
|
|
|
m_List.SetFocus();
|
|
|
|
|
|
|
|
|
GetCurViewPtr()->MoveViewCenter();
|
|
|
GetCurViewPtr()->RefreshView();
|
|
|
|
|
|
UpdateData(FALSE);
|
|
|
}
|
|
|
//<2F><>ȡlist <20><>ǰѡ<C7B0><D1A1><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
|
|
|
int CDlgMarkArea::GetCurListIdx(CListCtrl &list)
|
|
|
{
|
|
|
POSITION pos = m_List.GetFirstSelectedItemPosition();
|
|
|
if (pos == NULL)
|
|
|
{
|
|
|
return -1;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
while (pos)
|
|
|
{
|
|
|
int nItem = m_List.GetNextSelectedItem(pos);
|
|
|
return nItem;
|
|
|
}
|
|
|
}
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>
|
|
|
void CDlgMarkArea::OnNMClickValStrList(NMHDR *pNMHDR, LRESULT *pResult)
|
|
|
{
|
|
|
*pResult = 0;
|
|
|
AreaListEvent();
|
|
|
}
|
|
|
//list <20>¼<EFBFBD>
|
|
|
void CDlgMarkArea::AreaListEvent()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
m_CurSelListIdx=GetCurListIdx(m_List);
|
|
|
m_Mgr.OpArea(m_CurSelListIdx,m_CurObj,true);
|
|
|
m_Mgr.SetCurSelIdx(m_CurSelListIdx);
|
|
|
UpdateData(FALSE);
|
|
|
|
|
|
DbSize size = m_CurObj.GetSize();
|
|
|
CString LogStr;
|
|
|
LogStr.Format(_T("[Area size W] = [%f] ,[Area size H] = [%f]"),size.w,size.h);
|
|
|
gLogMgr->WriteDebugLog(LogStr);
|
|
|
Dbxy pt = m_CurObj.GetRealBasePt();
|
|
|
LogStr.Format(_T("[RealBasePt X] = [%f] ,[RealBasePt Y] = [%f]"),pt.x,pt.y);
|
|
|
gLogMgr->WriteDebugLog(LogStr);
|
|
|
|
|
|
//<2F><>ʾarea <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ<EFBFBD><CEA7>obj
|
|
|
gObjComponentMgr->ResetAllMarkedState();
|
|
|
gObjComponentMgr->SetMarkedStateRect(m_CurObj.GetRect(),false);
|
|
|
GetCurViewPtr()->RefreshView();
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
#if 1
|
|
|
void CDlgMarkArea::OnBnClickedNew()
|
|
|
{
|
|
|
m_Mgr.Add();
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
//<2F><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE>
|
|
|
void CDlgMarkArea::OnBnClickedDelete()
|
|
|
{
|
|
|
if(m_CurSelListIdx>=0)
|
|
|
{
|
|
|
m_Mgr.DelSel(m_CurSelListIdx);
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
}
|
|
|
//ȫ<><C8AB>ɾ<EFBFBD><C9BE>
|
|
|
void CDlgMarkArea::OnBnClickedDelAll()
|
|
|
{
|
|
|
CMsgBox MsgBox;
|
|
|
if(MsgBox.ConfirmOkCancel(_T("ȫ<EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD>?")))
|
|
|
{
|
|
|
m_Mgr.DelAll();
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//Ӧ<><D3A6>
|
|
|
void CDlgMarkArea::OnBnClickedCommit()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
DbSize MirrorSize = gMirror->GetRange();
|
|
|
if(m_CurObj.m_Size.w>MirrorSize.w || m_CurObj.m_Size.h>MirrorSize.h)
|
|
|
{
|
|
|
CMsgBox MsgBox;
|
|
|
CString s;
|
|
|
s.Format(_T("<EFBFBD>ӹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Χ[%0.0f][%0.0f]"),MirrorSize.w,MirrorSize.h);
|
|
|
MsgBox.Show(s);
|
|
|
}
|
|
|
m_Mgr.OpArea(m_CurSelListIdx,m_CurObj,false);
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
void CDlgMarkArea::OnBnClickedMoveUp()
|
|
|
{
|
|
|
m_Mgr.Order(m_CurSelListIdx,true);
|
|
|
m_Mgr.SetCurSelIdx(m_CurSelListIdx);
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
void CDlgMarkArea::OnBnClickedMoveDown()
|
|
|
{
|
|
|
m_Mgr.Order(m_CurSelListIdx,false);
|
|
|
m_Mgr.SetCurSelIdx(m_CurSelListIdx);
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
void CDlgMarkArea::OnBnClickedUpBtn()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
if(m_AllAreaMove.GetCheck())
|
|
|
m_Mgr.MoveAllArea(m_MoveDis,_DIR_U);
|
|
|
else
|
|
|
m_CurObj.m_BasePt.y += m_MoveDis;
|
|
|
UpdateData(FALSE);
|
|
|
OnBnClickedCommit();
|
|
|
}
|
|
|
void CDlgMarkArea::OnBnClickedDownBtn()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
if(m_AllAreaMove.GetCheck())
|
|
|
m_Mgr.MoveAllArea(m_MoveDis*(-1),_DIR_D);
|
|
|
else
|
|
|
m_CurObj.m_BasePt.y -= m_MoveDis;
|
|
|
UpdateData(FALSE);
|
|
|
OnBnClickedCommit();
|
|
|
}
|
|
|
void CDlgMarkArea::OnBnClickedLeftBtn()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
if(m_AllAreaMove.GetCheck())
|
|
|
m_Mgr.MoveAllArea(m_MoveDis*(-1),_DIR_L);
|
|
|
else
|
|
|
m_CurObj.m_BasePt.x -= m_MoveDis;
|
|
|
UpdateData(FALSE);
|
|
|
OnBnClickedCommit();
|
|
|
}
|
|
|
void CDlgMarkArea::OnBnClickedRightBtn()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
if(m_AllAreaMove.GetCheck())
|
|
|
m_Mgr.MoveAllArea(m_MoveDis,_DIR_R);
|
|
|
else
|
|
|
m_CurObj.m_BasePt.x += m_MoveDis;
|
|
|
UpdateData(FALSE);
|
|
|
OnBnClickedCommit();
|
|
|
}
|
|
|
#endif
|
|
|
#if 1
|
|
|
void CDlgMarkArea::OnBnClickedZoomOut()
|
|
|
{
|
|
|
GetCurViewPtr()->OnZoomOut();
|
|
|
}
|
|
|
void CDlgMarkArea::OnBnClickedZoomIn()
|
|
|
{
|
|
|
GetCurViewPtr()->OnZoomIn();
|
|
|
}
|
|
|
void CDlgMarkArea::OnBnClickedShowArea()
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
m_Mgr.SetbDraw(m_ShowArea.GetCheck());
|
|
|
GetCurViewPtr()->RefreshView();
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
|
|
|
#if 1
|
|
|
void CDlgMarkArea::OnBnClickedCancel()
|
|
|
{
|
|
|
m_Mgr = m_OldMgr;//<2F>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
m_Mgr.SetCurSelIdx(-1);
|
|
|
CDialogEx::OnCancel();
|
|
|
}
|
|
|
|
|
|
|
|
|
void CDlgMarkArea::OnBnClickedOk()
|
|
|
{
|
|
|
m_Mgr.SaveOrLoad(true);//д<><D0B4><EFBFBD>ļ<EFBFBD>
|
|
|
m_Mgr.SetCurSelIdx(-1);
|
|
|
CDialogEx::OnOK();
|
|
|
}
|
|
|
|
|
|
//<2F><><EFBFBD>ⲿ<EFBFBD>ļ<EFBFBD><C4BC>ָ<EFBFBD>
|
|
|
void CDlgMarkArea::OnBnClickedReadFile()
|
|
|
{
|
|
|
TCHAR szFilters[]=("PAR <20>ļ<EFBFBD>(*.par)|*.par");
|
|
|
CFileDialog dlg(TRUE,("par"),("ParFile"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilters);
|
|
|
if(dlg.DoModal()==IDOK)
|
|
|
{
|
|
|
CFile file;
|
|
|
if(file.Open(dlg.GetPathName(),CFile::modeRead))
|
|
|
{
|
|
|
CArchive ar(&file,CArchive::load);
|
|
|
m_Mgr.SaveOrLoadExt(ar);
|
|
|
file.Close();
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
gLogMgr->WriteDebugLog(_T("<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>ȡʧ<EFBFBD><EFBFBD>"), _LOG_ERROR);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//<2F><><EFBFBD>浽<EFBFBD>ⲿ<EFBFBD>ļ<EFBFBD>
|
|
|
void CDlgMarkArea::OnBnClickedSaveFile()
|
|
|
{
|
|
|
TCHAR szFilters[]=("PAR <20>ļ<EFBFBD>(*.par)|*.par");
|
|
|
CFileDialog dlg(FALSE,("par"),("ParFile"),OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilters);
|
|
|
if(dlg.DoModal()==IDOK)
|
|
|
{
|
|
|
CFile file(dlg.GetPathName(),CFile::modeReadWrite|CFile::modeCreate);
|
|
|
CArchive ar(&file,CArchive::store);
|
|
|
m_Mgr.SaveOrLoadExt(ar);
|
|
|
}
|
|
|
}
|
|
|
#endif
|
|
|
|
|
|
|
|
|
void CDlgMarkArea::OnBnClickedByObj()
|
|
|
{
|
|
|
CMsgBox MsgBox;
|
|
|
if(MsgBox.ConfirmOkCancel(_T("Creat By Obj?")))
|
|
|
{
|
|
|
m_Mgr.DelAll();
|
|
|
gObjComponentMgr->CreatAreaByObj(m_Mgr);
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
}
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ͻǿ<CFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>area
|
|
|
void CDlgMarkArea::OnBnClickedArrayCreat()
|
|
|
{
|
|
|
CMsgBox MsgBox;
|
|
|
if(MsgBox.ConfirmOkCancel(_T("<EFBFBD>Զ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?")))
|
|
|
{
|
|
|
UpdateData(TRUE);
|
|
|
m_Mgr.ArrayCreat(m_CntX,m_CntY);
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
void CDlgMarkArea::OnBnClickedSetSize()
|
|
|
{
|
|
|
CMsgBox MsgBox;
|
|
|
if(MsgBox.ConfirmOkCancel(_T("<EFBFBD><EFBFBD><EFBFBD>³ߴ<EFBFBD>?")))
|
|
|
{
|
|
|
gMarkAreaMgr->SetAllMarkSize();
|
|
|
UpdateAreaList();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
void CDlgMarkArea::OnBnClickedCreatCross()
|
|
|
{
|
|
|
CMsgBox MsgBox;
|
|
|
if(MsgBox.ConfirmOkCancel(_T("<EFBFBD><EFBFBD>ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ʮ<EFBFBD><EFBFBD>?")))
|
|
|
{
|
|
|
gMarkAreaMgr->CreatCenterCrossObj();
|
|
|
GetCurViewPtr()->RefreshView();
|
|
|
}
|
|
|
}
|