// DLG_User_Log.cpp : implementation file // #include "stdafx.h" #include "corpsms.h" #include "DLG_User_Log.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_User_Log dialog #include "FSmsLog.h" #include "DLG_SmsLogSee.h" DLG_User_Log::DLG_User_Log(CWnd* pParent /*=NULL*/) : CDialog(DLG_User_Log::IDD, pParent) { //{{AFX_DATA_INIT(DLG_User_Log) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT m_bHideNum = false; } void DLG_User_Log::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_User_Log) DDX_Control(pDX, IDC_USER_LOG_SEND, m_wndSend); DDX_Control(pDX, IDC_USER_LOG_RECV, m_wndRecv); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_User_Log, CDialog) //{{AFX_MSG_MAP(DLG_User_Log) ON_NOTIFY(NM_DBLCLK, IDC_USER_LOG_SEND, OnDblclkUserLogSend) ON_NOTIFY(NM_DBLCLK, IDC_USER_LOG_RECV, OnDblclkUserLogRecv) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_User_Log message handlers void DLG_User_Log::SetParam(CAdoRecordSet *pAdo, const TCHAR *pMobile) { m_pAdoRS = pAdo; m_strMobile = pMobile; } BOOL DLG_User_Log::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here //初始化List m_ImageSend.Create(16,16,ILC_COLOR32|ILC_MASK,5,5); m_ImageSend.Add(AfxGetApp()->LoadIcon(IDI_L_SMSDF) ); m_ImageSend.Add(AfxGetApp()->LoadIcon(IDI_L_SMSYF) ); m_ImageSend.Add(AfxGetApp()->LoadIcon(IDI_L_SMSJS) ); m_ImageSend.Add(AfxGetApp()->LoadIcon(IDI_L_SMSSB) ); m_wndSend.SubClassWindow2(); m_wndSend.SetHeadings(_T("序号,50; 状态,70; 接收号码,120; 短信内容,280;发送时间,130;")); m_wndSend.SetGridLines(true); m_wndSend.SetImageList(&m_ImageSend,LVSIL_SMALL); m_ImageRecv.Create(16,16,ILC_COLOR32|ILC_MASK,2,2); m_ImageRecv.Add(AfxGetApp()->LoadIcon(IDI_L_SMSDF) ); m_ImageRecv.Add(AfxGetApp()->LoadIcon(IDI_L_SMSJS) ); m_wndRecv.SubClassWindow2(); m_wndRecv.SetHeadings(_T("序号,50; 接收号码,120; 短信内容,280;收信时间,130;")); m_wndRecv.SetGridLines(true); m_wndRecv.SetImageList(&m_ImageRecv,LVSIL_SMALL); RefreshSend(); RefreshRecv(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_User_Log::RefreshSend() { if ( m_strMobile.GetLength()<=0 ) return ; m_wndSend.ShowWindow(SW_HIDE); //加快显示速度 m_wndSend.DeleteAllItems(); CString str; str.Format(_T("select * from smslog where RecvNum='%s' order by SubTime desc") , m_strMobile ); BOOL b = m_pAdoRS->Open( str ); long lSendID; long lStatus; TCHAR szTemp[32]={0}; TCHAR szStatus[24]; TCHAR szSendNum[24]; TCHAR szRecver[64]; TCHAR szRecvNum[64]; TCHAR szMsg[180]; COleDateTime tSub; COleDateTime tRecv; long lCount = m_pAdoRS->GetRecordCount(); if ( b && lCount>0 ) { m_pAdoRS->MoveFirst(); long iItem = 0; while( !m_pAdoRS->IsEOF() ) { m_pAdoRS->GetCollect( _T("SendID") , lSendID ); m_pAdoRS->GetCollect( _T("Status") , lStatus ); m_pAdoRS->GetCollect( _T("SendNum") , szSendNum ); m_pAdoRS->GetCollect( _T("Recver") , szRecver ); m_pAdoRS->GetCollect( _T("RecvNum") , szRecvNum ); m_pAdoRS->GetCollect( _T("Msg") , szMsg ); m_pAdoRS->GetCollect( _T("SubTime") , tSub ); m_pAdoRS->GetCollect( _T("RecvTime"), tRecv ); if ( m_bHideNum ) { szRecvNum[4]='*'; szRecvNum[5]='*'; szRecvNum[6]='*'; szRecvNum[7]='*'; //szRecvNum[8]='*'; } #ifdef STATUS_ENABLE_RECV long lIcon = CFSmsLog::GetStatusText( lStatus , szStatus ); #else long lIcon = CFSmsLog::GetStatusText2( lStatus , szStatus ); #endif //m_wndSend.SetHeadings(_T("序号,50; 状态,70; 接收号码,120; 短信内容,280;发送时间,130;")); m_wndSend.InsertItem( iItem , _itot( lCount-iItem,szTemp,10) ,lIcon ); m_wndSend.SetItemData( iItem,lSendID ); //m_wndSend.SetIconIndex( iItem , lIcon ); m_wndSend.SetItemText(iItem,1,szStatus); if ( _tcslen(szRecver)>0 ) { _tcscat( szRecvNum , _T("-") ); _tcscat( szRecvNum , szRecver ); } m_wndSend.SetItemText(iItem,2,szRecvNum); m_wndSend.SetItemText(iItem,3,szMsg); if ( tSub.GetStatus() == COleDateTime::valid ) { _stprintf( szMsg , _T("%04d.%02d.%02d %02d:%02d") , tSub.GetYear(),tSub.GetMonth(),tSub.GetDay(),tSub.GetHour(),tSub.GetMinute() ); m_wndSend.SetItemText(iItem,4,szMsg); } /* #ifdef STATUS_ENABLE_RECV if ( tRecv.GetStatus() == COleDateTime::valid ) { _stprintf( szMsg , _T("%04d.%02d.%02d %02d:%02d") , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() ); m_wndList.SetItemText(iItem,5,szMsg); } #endif */ iItem++; m_pAdoRS->MoveNext(); } } m_wndSend.ShowWindow( SW_SHOW ); //为了加快显示速度 } void DLG_User_Log::RefreshRecv() { if ( m_strMobile.GetLength()<=0 ) return ; m_wndRecv.ShowWindow(SW_HIDE); //加快显示速度 m_wndRecv.DeleteAllItems(); CString str; str.Format(_T("select * from smsRecv where SendNum='%s' order by RecvTime desc") , m_strMobile ); BOOL b = m_pAdoRS->Open( str ); long lRecvID; BOOL bRead; TCHAR szTemp[32]={0}; //TCHAR szSender[64]; //TCHAR szSendNum[128]; TCHAR szRecvNum[64]; TCHAR szMsg[180]; COleDateTime tRecv; long lCount = m_pAdoRS->GetRecordCount(); if ( b && lCount>0 ) { m_pAdoRS->MoveFirst(); long iItem = 0; while( !m_pAdoRS->IsEOF() ) { m_pAdoRS->GetCollect( _T("RecvID") , lRecvID ); m_pAdoRS->GetCollect( _T("Reader") , bRead ); //m_pAdoRS->GetCollect( _T("SendNum") , szSendNum ); //m_pAdoRS->GetCollect( _T("Sender") , szSender ); m_pAdoRS->GetCollect( _T("RecvNum") , szRecvNum ); m_pAdoRS->GetCollect( _T("Msg") , szMsg ); m_pAdoRS->GetCollect( _T("RecvTime"), tRecv ); //if ( _tcslen(szSender)>0 ) //{ // _tcscat( szSendNum , _T("-") ); // _tcscat( szSendNum , szSender ); //} //m_wndRecv.SetHeadings(_T("序号,50; 发送号码,150;接收号码,120; 短信内容,280;收信时间,130;")); m_wndRecv.InsertItem( iItem , _itot( lCount-iItem,szTemp,10) , bRead ); m_wndRecv.SetItemData( iItem,lRecvID ); //m_wndRecv.SetIconIndex( iItem , bRead ); //m_wndRecv.SetItemText(iItem,1,szSendNum); m_wndRecv.SetItemText(iItem,1,szRecvNum); m_wndRecv.SetItemText(iItem,2,szMsg); if ( tRecv.GetStatus() == COleDateTime::valid ) { _stprintf( szMsg , _T("%04d.%02d.%02d %02d:%02d") , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() ); m_wndRecv.SetItemText(iItem,3,szMsg); } /* #ifdef STATUS_ENABLE_RECV if ( tRecv.GetStatus() == COleDateTime::valid ) { _stprintf( szMsg , "%04d.%02d.%02d %02d:%02d" , tRecv.GetYear(),tRecv.GetMonth(),tRecv.GetDay(),tRecv.GetHour(),tRecv.GetMinute() ); m_wndList.SetItemText(iItem,5,szMsg); } #endif */ iItem++; m_pAdoRS->MoveNext(); } } m_wndRecv.ShowWindow( SW_SHOW ); //为了加快显示速度 } void DLG_User_Log::OnDblclkUserLogSend(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; long lItem = GetCurrentSelected_Send(); if ( lItem <0 ) return ; SMS_See sms = GetSms_Send(lItem); sms.lType = SMS_SEE_TYPE_LOG; DLG_SmsLogSee dlg(this); dlg.SetParam(sms); dlg.DoModal(); } void DLG_User_Log::OnDblclkUserLogRecv(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; long lItem = GetCurrentSelected_Recv(); if ( lItem <0 ) return ; SMS_See sms = GetSms_Recv(lItem); sms.lType = SMS_SEE_TYPE_LOG; DLG_SmsLogSee dlg(this); dlg.SetParam(sms); dlg.DoModal(); } long DLG_User_Log::GetCurrentSelected_Send() { POSITION pos = m_wndSend.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndSend.GetNextSelectedItem(pos); } return -1; } long DLG_User_Log::GetCurrentSelected_Recv() { POSITION pos = m_wndRecv.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndRecv.GetNextSelectedItem(pos); } return -1; } SMS_See DLG_User_Log::GetSms_Send(long lItem) { SMS_See sms={0}; long lSendID = m_wndSend.GetItemData(lItem); CString strSelect; long lStatus; TCHAR szSender[16]={0}; TCHAR szRecver[16]={0}; COleDateTime t; strSelect.Format( _T("select * from smslog where SendID=%d") , lSendID ); if ( m_pAdoRS->Open( strSelect ) && m_pAdoRS->GetRecordCount()>0 ) { m_pAdoRS->MoveFirst(); m_pAdoRS->GetCollect( _T("Status") , lStatus ); m_pAdoRS->GetCollect( _T("SendNum") , sms.szSender ); m_pAdoRS->GetCollect( _T("Recver") , szRecver ); m_pAdoRS->GetCollect( _T("RecvNum") , sms.szRecver ); m_pAdoRS->GetCollect( _T("Msg") , sms.szMsg ); m_pAdoRS->GetCollect( _T("SubTime") , t );t.GetAsSystemTime(sms.tSend); m_pAdoRS->GetCollect( _T("RecvTime"), t );t.GetAsSystemTime(sms.tRecv); CFSmsLog::GetStatusText( lStatus , sms.szStatus ); if ( _tcslen(szSender)>0 ) { _tcscat( sms.szSender , _T("-") ); _tcscat( sms.szSender , szSender ); } if ( m_bHideNum ) { szRecver[4]='*'; szRecver[5]='*'; szRecver[6]='*'; szRecver[7]='*'; //user.szMobile[8]='*'; } if ( _tcslen(szRecver)>0 ) { _tcscat( sms.szRecver , _T("-") ); _tcscat( sms.szRecver , szRecver ); } } return sms; } SMS_See DLG_User_Log::GetSms_Recv(long lItem) { SMS_See sms={0}; long lRecvID = m_wndRecv.GetItemData(lItem); CString strSelect; TCHAR szSender[16]={0}; TCHAR szRecver[16]={0}; COleDateTime t; strSelect.Format( _T("select * from smsrecv where RecvID=%d") , lRecvID ); if ( m_pAdoRS->Open( strSelect ) && m_pAdoRS->GetRecordCount()>0 ) { m_pAdoRS->MoveFirst(); m_pAdoRS->GetCollect( _T("SendNum") , sms.szSender ); m_pAdoRS->GetCollect( _T("RecvNum") , sms.szRecver ); m_pAdoRS->GetCollect( _T("Msg") , sms.szMsg ); m_pAdoRS->GetCollect( _T("RecvTime"), t );t.GetAsSystemTime(sms.tRecv); sms.tSend = sms.tRecv; _tcscpy( sms.szStatus , _T("接 收") ); //状态改变 long lRead=1; m_pAdoRS->PutCollect( _T("Reader") , lRead ); m_pAdoRS->Update(); m_pAdoRS->Close(); m_wndRecv.SetIconIndex( lItem , 1 ); //显示已读图标 } return sms; } void DLG_User_Log::SetHideNum(BOOL bHide) { m_bHideNum = bHide; }