428 lines
12 KiB
C++
428 lines
12 KiB
C++
// DLG_CliSmsTD.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "smsmanager.h"
|
|
#include "DLG_CliSmsTD.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_CliSmsTD dialog
|
|
#include "DLG_CliSmsTD_Modify.h"
|
|
|
|
DLG_CliSmsTD::DLG_CliSmsTD(CWnd* pParent /*=NULL*/)
|
|
: CDialog(DLG_CliSmsTD::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(DLG_CliSmsTD)
|
|
// NOTE: the ClassWizard will add member initialization here
|
|
//}}AFX_DATA_INIT
|
|
|
|
m_pTD = NULL;
|
|
m_bRefresh = false;
|
|
m_pReqTD = NULL;
|
|
m_lReqSize = 0;
|
|
}
|
|
|
|
|
|
void DLG_CliSmsTD::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(DLG_CliSmsTD)
|
|
DDX_Control(pDX, IDD_CLISMSTD_TELCOM, m_wndTelcom);
|
|
DDX_Control(pDX, IDD_CLISMSTD_CW, m_B_CW);
|
|
DDX_Control(pDX, IDD_CLISMSTD_UNICOM, m_wndUnicom);
|
|
DDX_Control(pDX, IDD_CLISMSTD_PHS, m_wndPhs);
|
|
DDX_Control(pDX, IDD_CLISMSTD_CMCC, m_wndCmcc);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(DLG_CliSmsTD, CDialog)
|
|
//{{AFX_MSG_MAP(DLG_CliSmsTD)
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDD_CLISMSTD_CMCC, OnItemchangedClismstdCmcc)
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDD_CLISMSTD_UNICOM, OnItemchangedClismstdUnicom)
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDD_CLISMSTD_PHS, OnItemchangedClismstdPhs)
|
|
ON_NOTIFY(LVN_ITEMCHANGED, IDD_CLISMSTD_TELCOM, OnItemchangedClismstdTelcom)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_CliSmsTD message handlers
|
|
|
|
BOOL DLG_CliSmsTD::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
// TODO: Add extra initialization here
|
|
|
|
//加入图像列表
|
|
m_wndCmcc.SetTextBkColor( RGB(237,238,188) );
|
|
//设置成热激活形式
|
|
m_wndCmcc.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);
|
|
|
|
m_wndCmcc.InsertColumn( 0 , _T(" 实际通道") , LVCFMT_LEFT , 90 , 0);
|
|
m_wndCmcc.InsertColumn( 1 , _T("客户端显示通道名称") , LVCFMT_LEFT , 200 , 1);
|
|
m_wndCmcc.SetTextColor( RGB( 0 , 0 , 255 ) );
|
|
|
|
m_wndUnicom.SetTextBkColor( RGB(237,238,188) );
|
|
//设置成热激活形式
|
|
m_wndUnicom.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);
|
|
m_wndUnicom.InsertColumn( 0 , _T(" 实际通道") , LVCFMT_LEFT , 90 , 0);
|
|
m_wndUnicom.InsertColumn( 1 , _T("客户端显示通道名称") , LVCFMT_LEFT , 200 , 1);
|
|
m_wndUnicom.SetTextColor( RGB( 0 , 0 , 255 ) );
|
|
|
|
m_wndPhs.SetTextBkColor( RGB(237,238,188) );
|
|
//设置成热激活形式
|
|
m_wndPhs.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);
|
|
m_wndPhs.InsertColumn( 0 , _T(" 实际通道") , LVCFMT_LEFT , 90 , 0);
|
|
m_wndPhs.InsertColumn( 1 , _T("客户端显示通道名称") , LVCFMT_LEFT , 200 , 1);
|
|
m_wndPhs.SetTextColor( RGB( 0 , 0 , 255 ) );
|
|
|
|
m_wndTelcom.SetTextBkColor( RGB(237,238,188) );
|
|
//设置成热激活形式
|
|
m_wndTelcom.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_CHECKBOXES);
|
|
m_wndTelcom.InsertColumn( 0 , _T(" 实际通道") , LVCFMT_LEFT , 90 , 0);
|
|
m_wndTelcom.InsertColumn( 1 , _T("客户端显示通道名称") , LVCFMT_LEFT , 200 , 1);
|
|
m_wndTelcom.SetTextColor( RGB( 0 , 0 , 255 ) );
|
|
|
|
|
|
m_B_CW.SetCheck(m_pTD->bCliTD_CW);
|
|
|
|
SC_CliTD * pRetTD_Cmcc = (SC_CliTD *)((BYTE*)m_pTD+sizeof(ANS_CliSmsTD));
|
|
SC_CliTD * pRetTD_Unicom = (SC_CliTD *)((BYTE*)m_pTD+sizeof(ANS_CliSmsTD)+sizeof(SC_CliTD)*(m_pTD->lCliTD_Cmcc));
|
|
SC_CliTD * pRetTD_Phs = (SC_CliTD *)((BYTE*)m_pTD+sizeof(ANS_CliSmsTD)+sizeof(SC_CliTD)*(m_pTD->lCliTD_Cmcc+m_pTD->lCliTD_Unicom));
|
|
SC_CliTD * pRetTD_Telcom = (SC_CliTD *)((BYTE*)m_pTD+sizeof(ANS_CliSmsTD)+sizeof(SC_CliTD)*(m_pTD->lCliTD_Cmcc+m_pTD->lCliTD_Unicom+m_pTD->lCliTD_Phs));
|
|
|
|
m_bRefresh = true;
|
|
//设移动数据
|
|
int j=0;
|
|
for ( int i=0 ; i< 41; i++ )
|
|
{
|
|
CString strSrcTD;
|
|
if ( i== 0 )
|
|
strSrcTD = _T("第0通道");
|
|
if ( i>0 && i<10 )
|
|
strSrcTD.Format( _T("第%d通道"),i );
|
|
if ( i== 10 )
|
|
strSrcTD = _T("第10通道");
|
|
if ( i>10 )
|
|
strSrcTD.Format( _T("第%d通道"),i-1 );
|
|
|
|
m_wndCmcc.InsertItem( i , strSrcTD );
|
|
if (j<m_pTD->lCliTD_Cmcc && (TCHAR)('0'+i) == pRetTD_Cmcc[j].cSrcTD )
|
|
{
|
|
m_wndCmcc.SetCheck(i);
|
|
m_wndCmcc.SetItemText(i,1,pRetTD_Cmcc[j].szTDName);
|
|
j++;
|
|
}
|
|
}
|
|
//设联通数据
|
|
j=0;
|
|
for ( i=0 ; i< 41; i++ )
|
|
{
|
|
CString strSrcTD;
|
|
if (i == 0)
|
|
strSrcTD = _T("第0通道");
|
|
if (i > 0 && i < 10)
|
|
strSrcTD.Format(_T("第%d通道"), i);
|
|
if (i == 10)
|
|
strSrcTD = _T("第10通道");
|
|
if (i > 10)
|
|
strSrcTD.Format(_T("第%d通道"), i - 1);
|
|
|
|
m_wndUnicom.InsertItem( i , strSrcTD );
|
|
if (j<m_pTD->lCliTD_Unicom && (TCHAR)('0'+i) == pRetTD_Unicom[j].cSrcTD )
|
|
{
|
|
m_wndUnicom.SetCheck(i);
|
|
m_wndUnicom.SetItemText(i,1,pRetTD_Unicom[j].szTDName);
|
|
j++;
|
|
}
|
|
}
|
|
|
|
//设小灵通数据
|
|
j=0;
|
|
for ( i=0 ; i< 41; i++ )
|
|
{
|
|
CString strSrcTD;
|
|
if (i == 0)
|
|
strSrcTD = _T("第0通道");
|
|
if (i > 0 && i < 10)
|
|
strSrcTD.Format(_T("第%d通道"), i);
|
|
if (i == 10)
|
|
strSrcTD = _T("第10通道");
|
|
if (i > 10)
|
|
strSrcTD.Format(_T("第%d通道"), i - 1);
|
|
|
|
m_wndPhs.InsertItem( i , strSrcTD );
|
|
if (j<m_pTD->lCliTD_Phs && (TCHAR)('0'+i) == pRetTD_Phs[j].cSrcTD )
|
|
{
|
|
m_wndPhs.SetCheck(i);
|
|
m_wndPhs.SetItemText(i,1,pRetTD_Phs[j].szTDName);
|
|
j++;
|
|
}
|
|
}
|
|
//设电信数据
|
|
j=0;
|
|
for ( i=0 ; i<41 ; i++ )
|
|
{
|
|
CString strSrcTD;
|
|
if (i == 0)
|
|
strSrcTD = _T("第0通道");
|
|
if (i > 0 && i < 10)
|
|
strSrcTD.Format(_T("第%d通道"), i);
|
|
if (i == 10)
|
|
strSrcTD = _T("第10通道");
|
|
if (i > 10)
|
|
strSrcTD.Format(_T("第%d通道"), i - 1);
|
|
|
|
m_wndTelcom.InsertItem( i , strSrcTD );
|
|
if (j<m_pTD->lCliTD_Telcom && (TCHAR)('0'+i) == pRetTD_Telcom[j].cSrcTD )
|
|
{
|
|
m_wndTelcom.SetCheck(i);
|
|
m_wndTelcom.SetItemText(i,1,pRetTD_Telcom[j].szTDName);
|
|
j++;
|
|
}
|
|
}
|
|
|
|
m_wndCmcc.SetColumnWidth(0, LVSCW_AUTOSIZE_USEHEADER);
|
|
m_wndCmcc.SetColumnWidth(1, LVSCW_AUTOSIZE_USEHEADER);
|
|
m_wndUnicom.SetColumnWidth(0, LVSCW_AUTOSIZE_USEHEADER);
|
|
m_wndUnicom.SetColumnWidth(1, LVSCW_AUTOSIZE_USEHEADER);
|
|
m_wndPhs.SetColumnWidth(0, LVSCW_AUTOSIZE_USEHEADER);
|
|
m_wndPhs.SetColumnWidth(1, LVSCW_AUTOSIZE_USEHEADER);
|
|
m_wndTelcom.SetColumnWidth(0, LVSCW_AUTOSIZE_USEHEADER);
|
|
m_wndTelcom.SetColumnWidth(1, LVSCW_AUTOSIZE_USEHEADER);
|
|
|
|
m_bRefresh = false;
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void DLG_CliSmsTD::SetParam(ANS_CliSmsTD *pTD)
|
|
{
|
|
m_pTD = pTD;
|
|
}
|
|
|
|
void DLG_CliSmsTD::OnItemchangedClismstdCmcc(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
|
|
*pResult = 0;
|
|
|
|
// if ( !m_wndCmcc.GetFirstSelectedItemPosition() )
|
|
// return ;
|
|
|
|
if ( m_bRefresh )
|
|
return ;
|
|
|
|
//原是禁用,现在是启用
|
|
if ( pNMListView->uNewState==8192 && pNMListView->uOldState== 4096 )
|
|
{
|
|
CString strName = m_wndCmcc.GetItemText(pNMListView->iItem , 1 );
|
|
DLG_CliSmsTD_Modify dlg(this);
|
|
dlg.SetParam(strName);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
m_wndCmcc.SetItemText(pNMListView->iItem,1,dlg.m_strTDName);
|
|
}
|
|
else
|
|
{
|
|
m_wndCmcc.SetCheck(pNMListView->iItem,false);
|
|
}
|
|
|
|
}
|
|
//原是启用,现在是禁用
|
|
if ( pNMListView->uNewState==4096 && pNMListView->uOldState== 8192 )
|
|
{
|
|
//m_wndCmcc.SetItemText(pNMListView->iItem,1,_T(""));
|
|
}
|
|
}
|
|
|
|
void DLG_CliSmsTD::OnItemchangedClismstdUnicom(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
|
|
*pResult = 0;
|
|
|
|
if ( m_bRefresh )
|
|
return ;
|
|
|
|
//原是禁用,现在是启用
|
|
if ( pNMListView->uNewState==8192 && pNMListView->uOldState== 4096 )
|
|
{
|
|
CString strName = m_wndUnicom.GetItemText(pNMListView->iItem , 1 );
|
|
DLG_CliSmsTD_Modify dlg(this);
|
|
dlg.SetParam(strName);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
m_wndUnicom.SetItemText(pNMListView->iItem,1,dlg.m_strTDName);
|
|
}
|
|
else
|
|
{
|
|
m_wndUnicom.SetCheck(pNMListView->iItem,false);
|
|
}
|
|
|
|
}
|
|
//原是启用,现在是禁用
|
|
if ( pNMListView->uNewState==4096 && pNMListView->uOldState== 8192 )
|
|
{
|
|
//m_wndUnicom.SetItemText(pNMListView->iItem,1,_T(""));
|
|
}
|
|
}
|
|
|
|
void DLG_CliSmsTD::OnItemchangedClismstdPhs(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
|
|
*pResult = 0;
|
|
|
|
if ( m_bRefresh )
|
|
return ;
|
|
|
|
//原是禁用,现在是启用
|
|
if ( pNMListView->uNewState==8192 && pNMListView->uOldState== 4096 )
|
|
{
|
|
CString strName = m_wndPhs.GetItemText(pNMListView->iItem , 1 );
|
|
DLG_CliSmsTD_Modify dlg(this);
|
|
dlg.SetParam(strName);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
m_wndPhs.SetItemText(pNMListView->iItem,1,dlg.m_strTDName);
|
|
}
|
|
else
|
|
{
|
|
m_wndPhs.SetCheck(pNMListView->iItem,false);
|
|
}
|
|
|
|
}
|
|
//原是启用,现在是禁用
|
|
if ( pNMListView->uNewState==4096 && pNMListView->uOldState== 8192 )
|
|
{
|
|
//m_wndPhs.SetItemText(pNMListView->iItem,1,_T(""));
|
|
}
|
|
}
|
|
|
|
void DLG_CliSmsTD::OnOK()
|
|
{
|
|
REQ_CliSmsTD m_TD={0};
|
|
m_TD.lType = 1; //设通道
|
|
m_TD.bCliTD_CW = m_B_CW.GetCheck();
|
|
//先取数量
|
|
m_TD.lCliTD_Cmcc = 0;
|
|
for (int i = 0; i < m_wndCmcc.GetItemCount(); i++)
|
|
{
|
|
if(m_wndCmcc.GetCheck(i))
|
|
m_TD.lCliTD_Cmcc++;
|
|
}
|
|
m_TD.lCliTD_Unicom = 0;
|
|
for (i = 0; i < m_wndUnicom.GetItemCount(); i++)
|
|
{
|
|
if(m_wndUnicom.GetCheck(i))
|
|
m_TD.lCliTD_Unicom++;
|
|
}
|
|
m_TD.lCliTD_Phs = 0;
|
|
for (i = 0; i < m_wndPhs.GetItemCount(); i++)
|
|
{
|
|
if(m_wndPhs.GetCheck(i))
|
|
m_TD.lCliTD_Phs++;
|
|
}
|
|
m_TD.lCliTD_Telcom = 0;
|
|
for (i = 0; i < m_wndTelcom.GetItemCount(); i++)
|
|
{
|
|
if(m_wndTelcom.GetCheck(i))
|
|
m_TD.lCliTD_Telcom++;
|
|
}
|
|
|
|
m_lReqSize = sizeof(REQ_CliSmsTD)+sizeof(SC_CliTD)*(m_TD.lCliTD_Cmcc+m_TD.lCliTD_Unicom+m_TD.lCliTD_Phs+m_TD.lCliTD_Telcom);
|
|
BYTE * pData = new BYTE[m_lReqSize];
|
|
memset(pData , 0 , m_lReqSize );
|
|
REQ_CliSmsTD * pRetTD = (REQ_CliSmsTD*)pData;
|
|
SC_CliTD * pRetTD_Cmcc = (SC_CliTD *)(pData+sizeof(REQ_CliSmsTD));
|
|
SC_CliTD * pRetTD_Unicom = (SC_CliTD *)(pData+sizeof(REQ_CliSmsTD)+sizeof(SC_CliTD)*(m_TD.lCliTD_Cmcc));
|
|
SC_CliTD * pRetTD_Phs = (SC_CliTD *)(pData+sizeof(REQ_CliSmsTD)+sizeof(SC_CliTD)*(m_TD.lCliTD_Cmcc+m_TD.lCliTD_Unicom));
|
|
SC_CliTD * pRetTD_Telcom = (SC_CliTD *)(pData+sizeof(REQ_CliSmsTD)+sizeof(SC_CliTD)*(m_TD.lCliTD_Cmcc+m_TD.lCliTD_Unicom+m_TD.lCliTD_Phs));
|
|
|
|
|
|
*pRetTD = m_TD;
|
|
|
|
int j=0;
|
|
for (i = 0; i < m_wndCmcc.GetItemCount(); i++)
|
|
{
|
|
if(m_wndCmcc.GetCheck(i))
|
|
{
|
|
pRetTD_Cmcc[j].cSrcTD = (TCHAR)('0'+i);
|
|
m_wndCmcc.GetItemText(i,1,pRetTD_Cmcc[j].szTDName,sizeof(pRetTD_Cmcc[j].szTDName));
|
|
j++;
|
|
}
|
|
}
|
|
j=0;
|
|
for (i = 0; i < m_wndUnicom.GetItemCount(); i++)
|
|
{
|
|
if(m_wndUnicom.GetCheck(i))
|
|
{
|
|
pRetTD_Unicom[j].cSrcTD = (TCHAR)('0'+i);
|
|
m_wndUnicom.GetItemText(i,1,pRetTD_Unicom[j].szTDName,sizeof(pRetTD_Unicom[j].szTDName));
|
|
j++;
|
|
}
|
|
}
|
|
|
|
j=0;
|
|
for (i = 0; i < m_wndPhs.GetItemCount(); i++)
|
|
{
|
|
if(m_wndPhs.GetCheck(i))
|
|
{
|
|
pRetTD_Phs[j].cSrcTD = (TCHAR)('0'+i);
|
|
m_wndPhs.GetItemText(i,1,pRetTD_Phs[j].szTDName,sizeof(pRetTD_Phs[j].szTDName));
|
|
j++;
|
|
}
|
|
}
|
|
j=0;
|
|
for (i = 0; i < m_wndTelcom.GetItemCount(); i++)
|
|
{
|
|
if(m_wndTelcom.GetCheck(i))
|
|
{
|
|
pRetTD_Telcom[j].cSrcTD = (TCHAR)('0'+i);
|
|
m_wndTelcom.GetItemText(i,1,pRetTD_Telcom[j].szTDName,sizeof(pRetTD_Telcom[j].szTDName));
|
|
j++;
|
|
}
|
|
}
|
|
m_pReqTD= pData;
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void DLG_CliSmsTD::OnItemchangedClismstdTelcom(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
|
|
|
|
*pResult = 0;
|
|
|
|
if ( m_bRefresh )
|
|
return ;
|
|
|
|
//原是禁用,现在是启用
|
|
if ( pNMListView->uNewState==8192 && pNMListView->uOldState== 4096 )
|
|
{
|
|
CString strName = m_wndTelcom.GetItemText(pNMListView->iItem , 1 );
|
|
DLG_CliSmsTD_Modify dlg(this);
|
|
dlg.SetParam(strName);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
m_wndTelcom.SetItemText(pNMListView->iItem,1,dlg.m_strTDName);
|
|
}
|
|
else
|
|
{
|
|
m_wndTelcom.SetCheck(pNMListView->iItem,false);
|
|
}
|
|
|
|
}
|
|
//原是启用,现在是禁用
|
|
if ( pNMListView->uNewState==4096 && pNMListView->uOldState== 8192 )
|
|
{
|
|
//m_wndTelcom.SetItemText(pNMListView->iItem,1,_T(""));
|
|
}
|
|
}
|