// SendMsgLogDlg.cpp : 实现文件 // #include "stdafx.h" #include "lyfzSMSApp.h" #include "SendMsgLogDlg.h" #include "DataManager.h" // CSendMsgLogDlg 对话框 #ifdef _DEBUG #define new DEBUG_NEW #endif DWORD WINAPI ThreadFun(LPVOID lparam); IMPLEMENT_DYNAMIC(CSendMsgLogDlg, CDialog) CSendMsgLogDlg::CSendMsgLogDlg(CWnd* pParent /*=NULL*/) : CDialog(CSendMsgLogDlg::IDD, pParent) { m_strAccount = _T(""); //帐号 m_strPassWord = _T(""); //密码 m_pSMSHandle = NULL; //短信处理 } CSendMsgLogDlg::~CSendMsgLogDlg() { m_pSMSHandle = NULL; } void CSendMsgLogDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_SendMsgLog_List, m_MsgLogList); } BEGIN_MESSAGE_MAP(CSendMsgLogDlg, CDialog) ON_BN_CLICKED(IDC_Refresh_Btn, &CSendMsgLogDlg::OnBnClickedRefreshBtn) ON_BN_CLICKED(IDC_SMS_RESEND, &CSendMsgLogDlg::OnBnClickedSmsResend) ON_NOTIFY(NM_CLICK, IDC_SendMsgLog_List, &CSendMsgLogDlg::OnNMClickSendmsglogList) ON_BN_CLICKED(IDC_DELLOG_BTN, &CSendMsgLogDlg::OnBnClickedDellogBtn) END_MESSAGE_MAP() BOOL CSendMsgLogDlg::OnInitDialog() { CDialog::OnInitDialog(); m_MsgLogList.InsertColumn(0,_T("帐号")); m_MsgLogList.SetColumnWidth(0,58); m_MsgLogList.InsertColumn(1,_T("手机号码")); m_MsgLogList.SetColumnWidth(1,100); m_MsgLogList.InsertColumn(2,_T("内容")); m_MsgLogList.SetColumnWidth(2,100); m_MsgLogList.InsertColumn(3,_T("时间")); m_MsgLogList.SetColumnWidth(3,100); m_MsgLogList.InsertColumn(4,_T("次数")); m_MsgLogList.SetColumnWidth(4,100); m_MsgLogList.InsertColumn(5,_T("记录")); m_MsgLogList.SetColumnWidth(5,100); m_MsgLogList.InsertColumn(6,_T("状态")); m_MsgLogList.SetColumnWidth(6,100); m_MsgLogList.InsertColumn(7,_T("Sid")); m_MsgLogList.SetColumnWidth(7,100); m_MsgLogList.InsertColumn(8,_T("ID")); m_MsgLogList.SetColumnWidth(8,100); m_MsgLogList.SetExtendedStyle(m_MsgLogList.GetExtendedStyle() | LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT); //查询所有记录 if(SelectAllLogs() == -1) return FALSE; return TRUE; } // CSendMsgLogDlg 消息处理程序 int CSendMsgLogDlg::SelectAllLogs() { CArray arr; CString strTableName = _T("sendreg"); //account,phones,content,timestamp,msgcount,log,status,autoid std::vector vFields; vFields.push_back(_T("account")); vFields.push_back(_T("phones")); vFields.push_back(_T("content")); vFields.push_back(_T("timestamp")); vFields.push_back(_T("msgcount")); vFields.push_back(_T("log")); vFields.push_back(_T("status")); vFields.push_back(_T("Sid")); vFields.push_back(_T("autoid")); CDataManager::GetInstance()->Select(arr, strTableName, vFields); if(arr.GetSize() == 0) { MessageBox(_T("没有记录可查询")); return -1; } for(int i=0; iInsert(strTableName, strValues, strfiles) == -1) { MessageBox(_T("添加记录失败")); return; } //查找第一行数据 CArray arr; std::vector vFields; vFields.push_back(_T("autoid")); CString strstrSelLineCount = _T("top 1"); if(CDataManager::GetInstance()->Select(arr, strTableName, vFields, _T(""), strstrSelLineCount, _T("autoid desc")) == -1) { MessageBox(_T("查询记录失败")); return; } if(arr.GetSize() == 0) return; //发送信息 //获取帐号余额 if(m_pSMSHandle->SendSMToSever(g_szSMSServer, g_dwTCPSMSPort, strAccount, strPassWord, strPhoneNums, strContent, strStampTime, arr.ElementAt(0).ElementAt(0)) == 0) MessageBox(_T("发送成功!")); } void CSendMsgLogDlg::OnNMClickSendmsglogList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR; if(pNMListView->iItem != -1) { //单击行列pNMListView->iItem, pNMListView->iSubItem m_MsgLogList.GetItemText(pNMListView->iItem, 1); } *pResult = 0; } void CSendMsgLogDlg::SendSMS() { int nCount = m_MsgLogList.GetItemCount(); for(int i = 0; iSendSMS(); return 0; } //删除记录 void CSendMsgLogDlg::OnBnClickedDellogBtn() { // TODO: 在此添加控件通知处理程序代码 CString strTableName = _T("sendreg"); int nCount = m_MsgLogList.GetItemCount(); for(int i = nCount-1; i >= 0; i--) { if( m_MsgLogList.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED) { CString strLogID = _T(""); strLogID = _T("autoid=") + m_MsgLogList.GetItemText(i, 8); if(CDataManager::GetInstance()->Delete(strTableName, strLogID) == -1) { MessageBox(_T("删除失败")); continue; } m_MsgLogList.DeleteItem(i); } } UpdateData(FALSE); }