// 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 }