220 lines
5.1 KiB
C++
220 lines
5.1 KiB
C++
// OLSynOperato.cpp : 实现文件
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "GeoMative.h"
|
|
#include "OLSynOperato.h"
|
|
#include "afxdialogex.h"
|
|
|
|
// COLSynOperato 对话框
|
|
extern CGeoMativeApp theApp;
|
|
extern int g_iUILanguage;
|
|
extern int g_UIOffset;
|
|
|
|
BEGIN_EASYSIZE_MAP(COLSynOperato)
|
|
// EASYSIZE(control,left,top,right,bottom,options)
|
|
EASYSIZE(IDC_STATIC_DEV_SN, ES_BORDER, ES_BORDER, ES_BORDER, ES_KEEPSIZE, 0)
|
|
EASYSIZE(IDC_TD_DESN_OL, ES_BORDER, ES_BORDER, ES_BORDER, ES_KEEPSIZE, 0)
|
|
EASYSIZE(IDC_OP_SYN_TAB_OL, ES_BORDER, IDC_STATIC_DEV_SN, ES_BORDER, ES_BORDER, 0)
|
|
//EASYSIZE(IDD_OP_SYN_TD_OL, ES_BORDER, ES_BORDER, ES_BORDER, ES_BORDER, 0)
|
|
|
|
END_EASYSIZE_MAP
|
|
|
|
IMPLEMENT_DYNAMIC(COLSynOperato, CDialog)
|
|
|
|
COLSynOperato::COLSynOperato(_ConnectionPtr& pConnection, CWnd* pParent)
|
|
: CDialog(COLSynOperato::IDD, pParent)
|
|
{
|
|
ASSERT(NULL != pConnection);
|
|
m_pConnection = pConnection;
|
|
}
|
|
|
|
COLSynOperato::~COLSynOperato()
|
|
{
|
|
}
|
|
|
|
void COLSynOperato::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
DDX_Control(pDX, IDC_TD_DESN_OL, m_cbDevSN);
|
|
DDX_Control(pDX, IDC_OP_SYN_TAB_OL, m_synTab);
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(COLSynOperato, CDialog)
|
|
ON_NOTIFY(TCN_SELCHANGE, IDC_OP_SYN_TAB_OL, &COLSynOperato::OnTcnSelchangeOpSynTabOl)
|
|
ON_CBN_SELCHANGE(IDC_TD_DESN_OL, &COLSynOperato::OnCbnSelchangeTdDesnOl)
|
|
ON_WM_SIZE()
|
|
ON_WM_SIZING()
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// COLSynOperato 消息处理程序
|
|
|
|
|
|
void COLSynOperato::OnTcnSelchangeOpSynTabOl(NMHDR *pNMHDR, LRESULT *pResult)
|
|
{
|
|
// TODO: 在此添加控件通知处理程序代码
|
|
*pResult = 0;
|
|
int iCurSel = VAL_MINUS_ONE;
|
|
|
|
iCurSel = m_synTab.GetCurSel();
|
|
switch (iCurSel)
|
|
{
|
|
case TAB_INDEX_DMS:
|
|
m_SynDevDlg.ShowWindow(true);
|
|
m_SynTdDlg.ShowWindow(false);
|
|
m_SynDevDlg.OnInitLocalList();
|
|
m_SynDevDlg.OnSynAndInitSevDevList();
|
|
m_SynDevDlg.OnSynAndInitSevCableList();
|
|
break;
|
|
|
|
case TAB_INDEX_SPT:
|
|
m_SynDevDlg.ShowWindow(false);
|
|
m_SynTdDlg.ShowWindow(true);
|
|
m_SynTdDlg.OnInitLocalList();
|
|
m_SynTdDlg.OnSynAndInitSevTdList();
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
m_synTab.SetFocus();
|
|
}
|
|
|
|
|
|
void COLSynOperato::OnCbnSelchangeTdDesnOl()
|
|
{
|
|
// TODO: 在此添加控件通知处理程序代码
|
|
|
|
//根据重选的设备号进行设置
|
|
m_SynTdDlg.m_uiPlcID = m_uiPlcId;
|
|
|
|
CString Str;
|
|
int nIndex = m_cbDevSN.GetCurSel();
|
|
if (CB_ERR != nIndex)
|
|
{
|
|
m_cbDevSN.GetLBText(nIndex, m_SynTdDlg.m_szDeSN);
|
|
m_cbDevSN.GetLBText(nIndex, m_SynDevDlg.m_szDeSN);
|
|
}
|
|
else
|
|
{
|
|
GetDlgItem(IDC_TD_DESN_OL)->GetWindowText(m_SynTdDlg.m_szDeSN);
|
|
GetDlgItem(IDC_TD_DESN_OL)->GetWindowText(m_SynDevDlg.m_szDeSN);
|
|
}
|
|
m_SynDevDlg.OnInitLocalList();
|
|
m_SynDevDlg.OnSynAndInitSevDevList();
|
|
m_SynDevDlg.OnSynAndInitSevCableList();
|
|
}
|
|
|
|
void COLSynOperato::InitialDevShow()
|
|
{
|
|
if (m_cbDevSN.GetCount() > 0)
|
|
{
|
|
m_cbDevSN.SetCurSel(0);
|
|
OnCbnSelchangeTdDesnOl();
|
|
}
|
|
}
|
|
|
|
BOOL COLSynOperato::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// TODO: 在此添加额外的初始化
|
|
// TODO: Add extra initialization here
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
SetWindowText(_T("同步"));
|
|
GetDlgItem(IDC_STATIC_DEV_SN)->SetWindowText(_T("已连接上的主机设备"));
|
|
}
|
|
CString szLabel;
|
|
CTabCtrl* pSynTab = NULL;
|
|
|
|
szLabel.Empty();
|
|
if (LANG_ZHCN == g_iUILanguage)
|
|
{
|
|
szLabel += _T("设备信息");//IDS_SYN_TD + g_UIOffset);
|
|
}
|
|
else
|
|
{
|
|
szLabel += _T("Device info");//IDS_SYN_TD + g_UIOffset);
|
|
}
|
|
ASSERT(!szLabel.IsEmpty());
|
|
m_synTab.InsertItem(TAB_INDEX_DMS, szLabel);
|
|
|
|
szLabel.Empty();
|
|
szLabel.LoadString(IDS_SYN_TD + g_UIOffset);
|
|
ASSERT(!szLabel.IsEmpty());
|
|
m_synTab.InsertItem(TAB_INDEX_SPT, szLabel);
|
|
|
|
m_SynDevDlg.Create(IDD_OP_SYN_DEV_OL, GetDlgItem(IDC_OP_SYN_TAB_OL));
|
|
m_SynTdDlg.Create(IDD_OP_SYN_TD_OL, GetDlgItem(IDC_OP_SYN_TAB_OL));
|
|
|
|
pSynTab = (CTabCtrl*)GetDlgItem(IDC_OP_SYN_TAB_OL);
|
|
|
|
INIT_EASYSIZE;
|
|
ShowWindow(SW_MAXIMIZE);
|
|
|
|
if ((NULL != pSynTab) && (VAL_ZERO != m_SynDevDlg.GetSafeHwnd()) && (VAL_ZERO != m_SynTdDlg.GetSafeHwnd()))
|
|
{
|
|
CRect rect;
|
|
pSynTab->GetClientRect(&rect);
|
|
|
|
rect.top += 23;
|
|
rect.bottom -= 2;
|
|
rect.left += 2;
|
|
rect.right -= 2;
|
|
|
|
m_SynDevDlg.MoveWindow(&rect);
|
|
m_SynTdDlg.MoveWindow(&rect);
|
|
|
|
//m_SynTdDlg.ShowWindow(SW_MAXIMIZE);
|
|
//m_SynDevDlg.ShowWindow(SW_MAXIMIZE);
|
|
}
|
|
pSynTab = NULL;
|
|
m_SynTdDlg.m_pConnection = m_pConnection;
|
|
m_SynDevDlg.ShowWindow(true);
|
|
m_SynTdDlg.ShowWindow(false);
|
|
|
|
//ModifyStyle(0, WS_SIZEBOX);
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// 异常: OCX 属性页应返回 FALSE
|
|
}
|
|
|
|
|
|
void COLSynOperato::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_SynTdDlg.GetSafeHwnd()) && (VAL_ZERO != m_SynDevDlg.GetSafeHwnd()))
|
|
{
|
|
CRect rect;
|
|
pSynTab->GetClientRect(&rect);
|
|
|
|
rect.top += 23;
|
|
rect.bottom -= 2;
|
|
rect.left += 2;
|
|
rect.right -= 2;
|
|
|
|
m_SynTdDlg.MoveWindow(&rect);
|
|
m_SynDevDlg.MoveWindow(&rect);
|
|
}
|
|
pSynTab = NULL;
|
|
// TODO: 在此处添加消息处理程序代码
|
|
}
|
|
|
|
|
|
void COLSynOperato::OnSizing(UINT fwSide, LPRECT pRect)
|
|
{
|
|
CDialog::OnSizing(fwSide, pRect);
|
|
EASYSIZE_MINSIZE(650, 550, fwSide, pRect);
|
|
// TODO: 在此处添加消息处理程序代码
|
|
}
|