CorpSms/DLG_MsgSetup2.cpp

287 lines
7.0 KiB
C++
Raw Normal View History

2025-02-27 16:58:16 +08:00
// DLG_MsgSetup2.cpp : implementation file
//
#include "stdafx.h"
#include "corpsms.h"
#include "DLG_MsgSetup2.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_MsgSetup2 dialog
#include "DLG_ZFUser.h"
DLG_MsgSetup2::DLG_MsgSetup2(CWnd* pParent /*=NULL*/)
: CDialog(DLG_MsgSetup2::IDD, pParent)
{
//{{AFX_DATA_INIT(DLG_MsgSetup2)
m_bCM = FALSE;
m_strCM = _T("");
m_strMobile = _T("");
m_strName = _T("");
m_strNickName = _T("");
m_strSmsUsed = _T("");
m_strTel = _T("");
m_bUserZF = FALSE;
//}}AFX_DATA_INIT
m_pMainFrame = (CMainFrame *)pParent;
m_pSetup = NULL;
memset(&m_Setup,0,sizeof(m_Setup));
m_pNewData = NULL;
}
void DLG_MsgSetup2::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_MsgSetup2)
DDX_Control(pDX, IDC_MSGSETUP2_LIST, m_wndUserList);
DDX_Check(pDX, IDC_MSGSETUP2_BCM, m_bCM);
DDX_Text(pDX, IDC_MSGSETUP2_CM, m_strCM);
DDV_MaxChars(pDX, m_strCM, 28);
DDX_Text(pDX, IDC_MSGSETUP2_MOBILE, m_strMobile);
DDV_MaxChars(pDX, m_strMobile, 18);
DDX_Text(pDX, IDC_MSGSETUP2_NAME, m_strName);
DDV_MaxChars(pDX, m_strName, 15);
DDX_Text(pDX, IDC_MSGSETUP2_NICKNAME, m_strNickName);
DDV_MaxChars(pDX, m_strNickName, 15);
DDX_Text(pDX, IDC_MSGSETUP2_SMSUSED, m_strSmsUsed);
DDX_Text(pDX, IDC_MSGSETUP2_TEL, m_strTel);
DDV_MaxChars(pDX, m_strTel, 18);
DDX_Check(pDX, IDC_MSGSETUP2_ZF, m_bUserZF);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DLG_MsgSetup2, CDialog)
//{{AFX_MSG_MAP(DLG_MsgSetup2)
ON_BN_CLICKED(IDC_MSGSETUP2_BCM, OnMsgsetup2Bcm)
ON_NOTIFY(NM_DBLCLK, IDC_MSGSETUP2_LIST, OnDblclkMsgsetup2List)
ON_NOTIFY(NM_RCLICK, IDC_MSGSETUP2_LIST, OnRclickMsgsetup2List)
//}}AFX_MSG_MAP
ON_COMMAND( ZF_USER_ADD , On_User_Add )
ON_COMMAND( ZF_USER_MODIFY, On_User_Modify )
ON_COMMAND( ZF_USER_DEL , On_User_Del )
ON_COMMAND( ZF_USER_CLEAR , On_User_Clear )
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_MsgSetup2 message handlers
void DLG_MsgSetup2::SetParam(ANS_MsgSetup3_See *pSetup, ANS_MsgSetupData * pData)
{
m_pSetup = pSetup;
m_pData = pData;
}
REQ_MsgSetup3 DLG_MsgSetup2::GetParam()
{
return m_Setup;
}
BOOL DLG_MsgSetup2::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_strName = m_pSetup->szName;
m_strNickName = m_pSetup->szNickName;
m_strTel = m_pSetup->szTel;
m_strMobile= m_pSetup->szMobile;
m_strSmsUsed.Format( _T("%d") , m_pSetup->lSmsUsed );
m_bCM = m_pSetup->bCM;
m_strCM = m_pSetup->szCM;
m_bUserZF = m_pSetup->bUserZF;
m_wndUserList.SubClassWindow2();
m_wndUserList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,40;<3B><> <20><>,80;<3B>ֻ<EFBFBD>,100;"));
m_wndUserList.SetGridLines(true);
TCHAR Buf[32]={0};
//<2F><>ʾת<CABE><D7AA><EFBFBD>б<EFBFBD>
for ( int i=0;i<m_pSetup->lUserZF;i++ )
{
m_wndUserList.InsertItem( i , _itot(i+1,Buf,10) , 0 );
m_wndUserList.SetItemText( i , 1 , m_pData[i].szName );
m_wndUserList.SetItemText( i , 2 , m_pData[i].szMobile );
}
UpdateData( false );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DLG_MsgSetup2::OnOK()
{
if ( !UpdateData(true) )
return ;
if ( m_bCM )
{
if ( m_strCM.GetLength() <= 0 )
{
MessageBox( _T("ǩ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem( IDC_MSGSETUP2_CM )->SetFocus();
return ;
}
}
m_Setup.lCorpID = m_pSetup->lCorpID;
m_Setup.lUserID = m_pSetup->lUserID;
_tcscpy(m_Setup.szName , m_strName );
_tcscpy(m_Setup.szNickName , m_strNickName );
_tcscpy(m_Setup.szTel , m_strTel );
_tcscpy(m_Setup.szMobile , m_strMobile );
m_Setup.bCM = m_bCM;
_tcscpy( m_Setup.szCM , m_strCM );
m_Setup.bUserZF = m_bUserZF;
m_Setup.lUserZF = m_wndUserList.GetItemCount();
m_pNewData = new ANS_MsgSetupData[m_Setup.lUserZF];
memset( m_pNewData , 0 , sizeof(ANS_MsgSetupData)*(m_Setup.lUserZF) );
//ȡ<>û<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
for ( int i = 0 ; i<m_Setup.lUserZF;i++ )
{
m_wndUserList.GetItemText( i , 1 , m_pNewData[i].szName ,sizeof(m_pNewData[i].szName));
m_wndUserList.GetItemText( i , 2 , m_pNewData[i].szMobile ,sizeof(m_pNewData[i].szMobile));
}
CDialog::OnOK();
}
void DLG_MsgSetup2::OnMsgsetup2Bcm()
{
CButton * pButton = (CButton*)GetDlgItem(IDC_MSGSETUP2_BCM);
if ( pButton->GetCheck() )
{
GetDlgItem( IDC_MSGSETUP2_CM )->EnableWindow(true);
}
else
{
GetDlgItem( IDC_MSGSETUP2_CM )->EnableWindow(false);
}
}
void DLG_MsgSetup2::OnDblclkMsgsetup2List(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_Modify();
}
void DLG_MsgSetup2::OnRclickMsgsetup2List(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRUserMenu();
}
void DLG_MsgSetup2::ShowRUserMenu()
{
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected_User();
//<2F><><EFBFBD><EFBFBD>
menu.AppendMenu(MF_STRING , ZF_USER_ADD, _T(" <20><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD> ") );
//<2F>޸<EFBFBD>
if ( lItem >=0 )
{
menu.AppendMenu(MF_STRING , ZF_USER_MODIFY, _T(" <20><> <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , ZF_USER_MODIFY , _T(" <20><> <20><> ") );
}
//ɾ<><C9BE>
if ( lItem >=0 )
{
menu.AppendMenu(MF_STRING , ZF_USER_DEL, _T(" ɾ <20><> ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , ZF_USER_DEL , _T(" ɾ <20><> ") );
}
menu.AppendMenu(MF_SEPARATOR );
//ˢ<><CBA2>
menu.AppendMenu(MF_STRING , ZF_USER_CLEAR , _T(" <20><><EFBFBD><EFBFBD> ") );
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
long DLG_MsgSetup2::GetCurrentSelected_User()
{
POSITION pos = m_wndUserList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndUserList.GetNextSelectedItem(pos);
}
return -1;
}
void DLG_MsgSetup2::On_User_Add()
{
ANS_MsgSetupData data={0};
DLG_ZFUser dlg(this);
dlg.SetParam( data );
if ( dlg.DoModal() == IDOK )
{
TCHAR Buf[32];
long lCount = m_wndUserList.GetItemCount();
m_wndUserList.InsertItem( lCount , _itot(lCount+1,Buf,10),0);
m_wndUserList.SetItemText( lCount,1 , dlg.GetParam().szName );
m_wndUserList.SetItemText( lCount,2 , dlg.GetParam().szMobile );
}
}
void DLG_MsgSetup2::On_User_Del()
{
long lItem = this->GetCurrentSelected_User();
if ( lItem < 0 )
return;
m_wndUserList.DeleteItem( lItem );
long lCount = m_wndUserList.GetItemCount();
TCHAR szBuf[32];
for ( int i = 0 ; i< lCount;i++ )
{
m_wndUserList.SetItemText( i , 0 , _itot(i+1,szBuf,10) );
}
}
void DLG_MsgSetup2::On_User_Modify()
{
long lItem = this->GetCurrentSelected_User();
if ( lItem < 0 )
return;
ANS_MsgSetupData data={0};
m_wndUserList.GetItemText( lItem , 1 , data.szName ,sizeof(data.szName));
m_wndUserList.GetItemText( lItem , 2 , data.szMobile,sizeof(data.szMobile) );
DLG_ZFUser dlg(this);
dlg.SetParam( data );
if ( dlg.DoModal() == IDOK )
{
m_wndUserList.SetItemText( lItem,1 , dlg.GetParam().szName );
m_wndUserList.SetItemText( lItem,2 , dlg.GetParam().szMobile );
}
}
void DLG_MsgSetup2::On_User_Clear()
{
m_wndUserList.DeleteAllItems();
}