Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

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: 在此处添加消息处理程序代码
}