CorpSms/DLG_TDSet_Modify.cpp
lujiang e17c4ce7ed 重新对窗口布局进行优化,解决缺字的情况。
对图标显示进行了优化,使用gdi+按DPI进行缩放。
2025-04-14 17:24:47 +08:00

229 lines
6.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// DLG_TDSet_Modify.cpp : implementation file
//
#include "stdafx.h"
#include "corpsms.h"
#include "DLG_TDSet_Modify.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_TDSet_Modify dialog
#include "FTDSet.h"
DLG_TDSet_Modify::DLG_TDSet_Modify(CWnd* pParent /*=NULL*/)
: CDialog(DLG_TDSet_Modify::IDD, pParent)
{
//{{AFX_DATA_INIT(DLG_TDSet_Modify)
m_bEnable = FALSE;
m_strBZ = _T("");
m_strMobile = _T("");
//}}AFX_DATA_INIT
m_pCliTDData = NULL;
memset(&m_CliTD,0,sizeof(m_CliTD));
memset(&m_TDSet,0,sizeof(m_TDSet));
m_pTDSet = (CFTDSet *)pParent;
m_lModifyCount = 0;
}
void DLG_TDSet_Modify::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_TDSet_Modify)
DDX_Control(pDX, IDD_CHANGETD_UNICOM, m_wndUnicom);
DDX_Control(pDX, IDD_CHANGETD_TELCOM, m_wndTelcom);
DDX_Control(pDX, IDD_CHANGETD_PHS, m_wndPhs);
DDX_Control(pDX, IDD_CHANGETD_CMCC, m_wndCmcc);
DDX_Control(pDX, IDD_CHANGETD_CW, m_B_CW);
DDX_Check(pDX, IDC_TDSET_MODIFY_ENABLE, m_bEnable);
DDX_Text(pDX, TDSET_MODIFY_BZ, m_strBZ);
DDV_MaxChars(pDX, m_strBZ, 120);
DDX_Text(pDX, TDSET_MODIFY_MOBILE, m_strMobile);
DDV_MaxChars(pDX, m_strMobile, 12);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DLG_TDSet_Modify, CDialog)
//{{AFX_MSG_MAP(DLG_TDSet_Modify)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_TDSet_Modify message handlers
void DLG_TDSet_Modify::SetParam(ANS_CliSmsTD CliTD,BYTE * pCliTDData , ANS_TDSet_Data TDSet , long lModifyCount)
{
m_CliTD = CliTD;
m_pCliTDData = pCliTDData;
m_TDSet = TDSet;
m_lModifyCount = lModifyCount;
}
BOOL DLG_TDSet_Modify::OnInitDialog()
{
CDialog::OnInitDialog();
m_bEnable = m_TDSet.lStatus;
m_strMobile = m_TDSet.szMobile;
m_strBZ = m_TDSet.szBZ;
UpdateData(false);
m_B_CW.SetCheck(m_CliTD.bCW);
if ( !m_CliTD.bCliTD_CW )
m_B_CW.ShowWindow(SW_HIDE);
SC_CliTD * pRetTD_Cmcc = (SC_CliTD *)((BYTE*)m_pCliTDData);
SC_CliTD * pRetTD_Unicom = (SC_CliTD *)((BYTE*)m_pCliTDData+sizeof(SC_CliTD)*(m_CliTD.lCliTD_Cmcc));
SC_CliTD * pRetTD_Phs = (SC_CliTD *)((BYTE*)m_pCliTDData+sizeof(SC_CliTD)*(m_CliTD.lCliTD_Cmcc+m_CliTD.lCliTD_Unicom));
SC_CliTD * pRetTD_Telcom = (SC_CliTD *)((BYTE*)m_pCliTDData+sizeof(SC_CliTD)*(m_CliTD.lCliTD_Cmcc+m_CliTD.lCliTD_Unicom+m_CliTD.lCliTD_Phs));
//<2F><><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD>
int j=0;
int iSel=0;
int iItem = m_wndCmcc.AddString(_T("Ĭ<EFBFBD><EFBFBD>"));
m_wndCmcc.SetItemData(iItem,(DWORD_PTR)'0');
for ( int i=0 ; i<m_CliTD.lCliTD_Cmcc ; i++ )
{
//int iItem = m_wndCmcc.AddString(pRetTD_Cmcc[i].szTDName);
CString str = pRetTD_Cmcc[i].szTDName;
int iItem = m_wndCmcc.AddString(str);
m_wndCmcc.SetItemData(iItem,(DWORD_PTR)pRetTD_Cmcc[i].cSrcTD);
if ( pRetTD_Cmcc[i].cSrcTD == m_TDSet.szTD[0] )
iSel = i+1;
}
m_wndCmcc.SetCurSel(iSel);
//<2F><><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
j=0;
iSel=0;
iItem = m_wndUnicom.AddString(_T("Ĭ<EFBFBD><EFBFBD>"));
m_wndUnicom.SetItemData(iItem,(DWORD_PTR)'0');
for ( i=0 ; i<m_CliTD.lCliTD_Unicom ; i++ )
{
CString str = pRetTD_Unicom[i].szTDName;
int iItem=m_wndUnicom.AddString(str);
m_wndUnicom.SetItemData(iItem,(DWORD_PTR)pRetTD_Unicom[i].cSrcTD);
if ( pRetTD_Unicom[i].cSrcTD == m_TDSet.szTD[1] )
iSel = i+1;
}
m_wndUnicom.SetCurSel(iSel);
//<2F><>С<EFBFBD><D0A1>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD>
j=0;
iSel=0;
iItem = m_wndPhs.AddString(_T("Ĭ<EFBFBD><EFBFBD>"));
m_wndPhs.SetItemData(iItem,(DWORD_PTR)'0');
for ( i=0 ; i<m_CliTD.lCliTD_Phs ; i++ )
{
CString str = pRetTD_Phs[i].szTDName;
int iItem = m_wndPhs.AddString(str);
m_wndPhs.SetItemData(iItem,(DWORD_PTR)pRetTD_Phs[i].cSrcTD);
if ( pRetTD_Phs[i].cSrcTD == m_TDSet.szTD[2] )
iSel = i+1;
}
m_wndPhs.SetCurSel(iSel);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
j=0;
iSel=0;
iItem = m_wndTelcom.AddString(_T("Ĭ<EFBFBD><EFBFBD>"));
m_wndTelcom.SetItemData(iItem,(DWORD_PTR)'0');
for ( i=0 ; i<m_CliTD.lCliTD_Telcom ; i++ )
{
CString str = pRetTD_Telcom[i].szTDName;
int iItem = m_wndTelcom.AddString(str);
m_wndTelcom.SetItemData(iItem,(DWORD_PTR)pRetTD_Telcom[i].cSrcTD);
if ( pRetTD_Telcom[i].cSrcTD == m_TDSet.szTD[3] )
iSel = i+1;
}
m_wndTelcom.SetCurSel(iSel);
if ( m_lModifyCount>1 )
{
GetDlgItem(TDSET_MODIFY_MOBILE)->ShowWindow(SW_HIDE);
GetDlgItem(TDSET_MODIFY_MOBILE_S)->ShowWindow(SW_HIDE);
GetDlgItem(TDSET_MODIFY_BZ)->ShowWindow(SW_HIDE);
GetDlgItem(TDSET_MODIFY_BZ_S)->ShowWindow(SW_HIDE);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
ANS_TDSet_Data DLG_TDSet_Modify::GetParam()
{
return m_TDSet;
}
void DLG_TDSet_Modify::OnOK()
{
if ( !UpdateData(true) )
return ;
TCHAR szMobile[32]={0};
_tcscpy(szMobile , m_strMobile );
ExMobileGZM(szMobile); //ȥ<><C8A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (m_lModifyCount<=1 && !isMobileNum( szMobile ) ) //<2F><><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӻ<EFBFBD><D3BB>޸<EFBFBD>
{
MessageBox(_T("<EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(TDSET_MODIFY_MOBILE)->SetFocus();
return ;
}
if (m_lModifyCount<=1 && m_pTDSet && CString(m_TDSet.szMobile) != CString(szMobile))
{
if ( m_pTDSet->MobileInList(szMobile) )
{
MessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(TDSET_MODIFY_MOBILE)->SetFocus();
return ;
}
}
if ( m_lModifyCount>1 )
{
CString str;
str.Format( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD>󽫻<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>%d<><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD>󶨣<EFBFBD>") , m_lModifyCount );
int iRet = MessageBox(str , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING|MB_YESNO );
if ( iRet != IDYES )
return ;
}
m_TDSet.lStatus = m_bEnable;
_tcscpy(m_TDSet.szMobile , szMobile);
_tcscpy(m_TDSet.szBZ , m_strBZ);
_tcscpy(m_TDSet.szTD , _T("0000"));
_tcscpy(m_TDSet.szOutAll , _T("0000"));
if ( m_CliTD.bCliTD_CW )
m_TDSet.szOutAll[0]='1'+m_B_CW.GetCheck();
if ( m_wndCmcc.GetCurSel()>=0 )
{
m_TDSet.szTD[0] = (TCHAR)m_wndCmcc.GetItemData(m_wndCmcc.GetCurSel());
}
if ( m_wndUnicom.GetCurSel()>=0 )
{
m_TDSet.szTD[1] = (TCHAR)m_wndUnicom.GetItemData(m_wndUnicom.GetCurSel());
}
if ( m_wndPhs.GetCurSel()>=0 )
{
m_TDSet.szTD[2] = (TCHAR)m_wndPhs.GetItemData(m_wndPhs.GetCurSel());
}
if ( m_wndTelcom.GetCurSel()>=0 )
{
m_TDSet.szTD[3] = (TCHAR)m_wndTelcom.GetItemData(m_wndTelcom.GetCurSel());
}
CDialog::OnOK();
}