CorpSms/DLG_MsgSetup2.cpp
2025-02-27 16:58:16 +08:00

287 lines
7.0 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_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();
}