// 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("序号,40;姓 名,80;手机,100;")); m_wndUserList.SetGridLines(true); TCHAR Buf[32]={0}; //显示转发列表 for ( int i=0;ilUserZF;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("签名内容不能为空,请输入!") , _T("错误") , 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) ); //取用户转发资料 for ( int i = 0 ; iGetCheck() ) { 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(); //添加 menu.AppendMenu(MF_STRING , ZF_USER_ADD, _T(" 添加号码 ") ); //修改 if ( lItem >=0 ) { menu.AppendMenu(MF_STRING , ZF_USER_MODIFY, _T(" 修 改 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , ZF_USER_MODIFY , _T(" 修 改 ") ); } //删除 if ( lItem >=0 ) { menu.AppendMenu(MF_STRING , ZF_USER_DEL, _T(" 删 除 ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , ZF_USER_DEL , _T(" 删 除 ") ); } menu.AppendMenu(MF_SEPARATOR ); //刷新 menu.AppendMenu(MF_STRING , ZF_USER_CLEAR , _T(" 清空 ") ); //显示菜单 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(); }