Files
geomative/GeomativeStudio/cpp/Views/opsyndlg.cpp
T
coco df489d5640 a
2026-07-03 16:05:30 +08:00

237 lines
5.6 KiB
C++

// opsyndlg.cpp : implementation file
//
#include "stdafx.h"
#include "geomative.h"
#include "opsyndlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CGeoMativeApp theApp;
extern int g_iUILanguage;
extern int g_UIOffset;
BEGIN_EASYSIZE_MAP(COpSynDlg)
EASYSIZE(IDC_STATIC_SELECT, ES_BORDER, ES_BORDER, ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_TD_DESN, ES_BORDER, ES_BORDER, ES_BORDER,ES_KEEPSIZE,0)
EASYSIZE(IDC_OP_SYN_TAB, ES_BORDER,ES_BORDER,ES_BORDER,ES_BORDER,0)
END_EASYSIZE_MAP
/////////////////////////////////////////////////////////////////////////////
// COpSynDlg dialog
COpSynDlg::COpSynDlg(CWnd* pParent /*=NULL*/)
: CDialog(COpSynDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(COpSynDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
COpSynDlg::COpSynDlg(_ConnectionPtr& pConnection, CWnd* pParent)
: CDialog(COpSynDlg::IDD, pParent)
{
m_pConnection = pConnection;
m_pDev = NULL;
}
void COpSynDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COpSynDlg)
DDX_Control(pDX, IDC_TD_DESN, m_cbDESN);
DDX_Control(pDX, IDC_OP_SYN_TAB, m_synTab);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COpSynDlg, CDialog)
//{{AFX_MSG_MAP(COpSynDlg)
ON_NOTIFY(TCN_SELCHANGE, IDC_OP_SYN_TAB, OnSelchangeOpSynTab)
ON_CBN_SELCHANGE(IDC_TD_DESN, OnSelchangeTdDesn)
ON_WM_SIZE()
ON_WM_SIZING()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COpSynDlg message handlers
BOOL COpSynDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
if (LANG_ZHCN == g_iUILanguage)
{
SetWindowText(_T("同步"));
GetDlgItem(IDC_STATIC_SELECT)->SetWindowText(_T("已连接上的主机设备"));
}
CString szLabel;
CTabCtrl* pSynTab = NULL;
szLabel.Empty();
szLabel.LoadString(IDS_SYN_TD + g_UIOffset);
ASSERT(!szLabel.IsEmpty());
m_synTab.InsertItem(TAB_INDEX_DMS, szLabel);
szLabel.Empty();
szLabel.LoadString(IDS_SYN_SCRIPT+g_UIOffset);
ASSERT(!szLabel.IsEmpty());
m_synTab.InsertItem(TAB_INDEX_SPT, szLabel);
m_opSynTDDlg.Create(IDD_OP_SYN_TD, GetDlgItem(IDC_OP_SYN_TAB));
m_opSynSptDlg.Create(IDD_OP_SYN_SPT, GetDlgItem(IDC_OP_SYN_TAB));
pSynTab = (CTabCtrl*)GetDlgItem(IDC_OP_SYN_TAB);
if ((NULL != pSynTab) && (VAL_ZERO != m_opSynTDDlg.GetSafeHwnd()) && (VAL_ZERO != m_opSynSptDlg.GetSafeHwnd()))
{
CRect rect;
pSynTab->GetClientRect(&rect);
rect.top += 23;
rect.bottom -= 2;
rect.left += 2;
rect.right -= 2;
m_opSynTDDlg.MoveWindow(&rect);
m_opSynSptDlg.MoveWindow(&rect);
}
pSynTab = NULL;
m_opSynTDDlg.ShowWindow(true);
m_opSynSptDlg.ShowWindow(false);
INIT_EASYSIZE;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void COpSynDlg::InitialDevShow()
{
if (m_cbDESN.GetCount() > 0)
{
m_cbDESN.SetCurSel(0);
OnSelchangeTdDesn();
}
}
BOOL COpSynDlg::Create(UINT nID, CWnd* pParentWnd)
{
// TODO: Add your specialized code here and/or call the base class
pParentWnd->EnableWindow(FALSE);
return CDialog::Create(IDD, pParentWnd);
}
void COpSynDlg::OnSelchangeOpSynTab(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int iCurSel = VAL_MINUS_ONE;
iCurSel = m_synTab.GetCurSel();
switch (iCurSel)
{
case TAB_INDEX_DMS:
m_opSynTDDlg.ShowWindow(true);
m_opSynSptDlg.ShowWindow(false);
break;
case TAB_INDEX_SPT:
m_opSynTDDlg.ShowWindow(false);
m_opSynSptDlg.ShowWindow(true);
break;
default:
break;
}
m_synTab.SetFocus();
*pResult = 0;
}
void COpSynDlg::OnSelchangeTdDesn()
{
// TODO: Add your control notification handler code here
CString szDESN = _T("");
this->m_opSynTDDlg.ClearAll();
szDESN.Empty();
m_pDev = (CDevice*)this->m_cbDESN.GetItemData(this->m_cbDESN.GetCurSel());
this->m_cbDESN.GetLBText(this->m_cbDESN.GetCurSel(), szDESN);
this->m_opSynSptDlg.m_pDev = m_pDev;
// this->m_opSynSptDlg.m_szDeSN.Empty();
// this->m_opSynSptDlg.m_szDeSN = szDESN;
this->m_opSynTDDlg.m_pDev = m_pDev;
// this->m_opSynTDDlg.m_szDeSN.Empty();
// this->m_opSynTDDlg.m_szDeSN = szDESN;
theApp.m_pProManager->ClearDMSTreeForSyn(this->m_opSynTDDlg.m_dmsTree);
theApp.m_pProManager->InitialDMSTreeForSyn(this->m_opSynTDDlg.m_dmsTree, szDESN);
theApp.m_pSptManager->InitialSptList(this->m_opSynSptDlg.m_locSptList);
theApp.m_pSptManager->InitialSptListForDev(this->m_opSynSptDlg.m_hostSptList, szDESN);
}
BOOL COpSynDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
{
return TRUE;
}
if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE)
{
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
void COpSynDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
UPDATE_EASYSIZE;
//当界面变化时更新CTabCtrl控件中的对话框大小
CTabCtrl* pSynTab = NULL;
pSynTab = (CTabCtrl*)GetDlgItem(IDC_OP_SYN_TAB);
if ((NULL != pSynTab) && (VAL_ZERO != m_opSynTDDlg.GetSafeHwnd()) && (VAL_ZERO != m_opSynSptDlg.GetSafeHwnd()))
{
CRect rect;
pSynTab->GetClientRect(&rect);
rect.top += 23;
rect.bottom -= 2;
rect.left += 2;
rect.right -= 2;
m_opSynTDDlg.MoveWindow(&rect);
m_opSynSptDlg.MoveWindow(&rect);
}
pSynTab = NULL;
// TODO: Add your message handler code here
}
void COpSynDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
CDialog::OnSizing(fwSide, pRect);
EASYSIZE_MINSIZE(650,550,fwSide,pRect);
// TODO: Add your message handler code here
}