⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logmanager.cpp

📁 使用短信猫可以实现短信的群发
💻 CPP
字号:
// LogManager.cpp : implementation file
//

#include "stdafx.h"
#include "sms.h"
#include "LogManager.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CLogManager dialog


CLogManager::CLogManager(CWnd* pParent /*=NULL*/)
	: CDialog(CLogManager::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLogManager)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CLogManager::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLogManager)
	DDX_Control(pDX, IDC_LOG_TAB, m_LogTab);
	DDX_Control(pDX, IDC_LOG_LIST, m_LogList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLogManager, CDialog)
	//{{AFX_MSG_MAP(CLogManager)
	ON_NOTIFY(TCN_SELCHANGE, IDC_LOG_TAB, OnSelchangeLogTab)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLogManager message handlers

BOOL CLogManager::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here

// 	//////////////////////////////////////////////////////////////////////////
// 	//对日志对话框中的List控件添加列
// 	//////////////////////////////////////////////////////////////////////////
// 	m_LogList.InsertColumn(0,"ID",LVCFMT_LEFT,60);
// 	m_LogList.InsertColumn(1,"订单ID",LVCFMT_LEFT,90);
// 	m_LogList.InsertColumn(2,"对方号码",LVCFMT_LEFT,90);
// 	m_LogList.InsertColumn(3,"状态",LVCFMT_LEFT,90);
// 	m_LogList.SetExtendedStyle(LVS_REPORT);//为表格添加附加属性 让表格有方格线
// 
	//////////////////////////////////////////////////////////////////////////
	//对日志对话框中的Tab控件添加表项
	//////////////////////////////////////////////////////////////////////////
	m_LogTab.InsertItem(0,"发送日志查询");
	m_LogTab.InsertItem(1,"接收日志查询");

	//////////////////////////////////////////////////////////////////////////
	//将窗口类对象跟指定窗口关连起来
	//////////////////////////////////////////////////////////////////////////
	m_SendLogQuery.Create(IDD_SEND_LOG_QUERY,&m_LogTab);
	m_InceptLogQuery.Create(IDD_INCEPT_LOG_QUERY,&m_LogTab);

	DoTab(0);//通过调用这个函数将Tab控件里的第一个该选项关连的对话框显示出来

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CLogManager::DoTab(int nTab)
{
	if (nTab>2) nTab = 2;		// 确定nTab值不能超过范围
	if (nTab<0) nTab = 0;
	BOOL bTab[3];
	bTab[0] = bTab[1] = bTab[2] = FALSE;
	bTab[nTab] = TRUE;			
	// 切换对话框的显示和隐藏
	SetDlgState(&m_SendLogQuery, bTab[0]);
	SetDlgState(&m_InceptLogQuery, bTab[1]);
	//SetDlgState(m_pTab3Dlg, bTab[2]);
	

	//////////////////////////////////////////////////////////////////////////
	///数据库操作
	CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
	CSMSADO &Ado=pCSMSApp->m_SMSAdo;
	//这里判断数据连接是否连接成功
	if(!Ado.IsConnection())
	{
		MessageBox("连接数据库出错\n请重新设置Oracle相关信息");
		return;
	}
	if(0==nTab)
	{
		CString sql="SELECT * FROM sendlog";
		SQLRECORDSET rs=Ado.ExecuteWithRecordset(sql);
		ShowSendLogSearchList(rs);
	}
	else
	{
		CString sql="SELECT * FROM receivedlog";
		SQLRECORDSET rs=Ado.ExecuteWithRecordset(sql);
		ShowRecvLogSearchList(rs);
	}
}

void CLogManager::SetDlgState(CWnd *pWnd, BOOL bShow)
{
	pWnd->EnableWindow(bShow);	
	if (bShow) 
	{	
		pWnd->ShowWindow(SW_SHOW);
		pWnd->CenterWindow();	// 居中显示
	}
	else	
		pWnd->ShowWindow(SW_HIDE);
}

void CLogManager::OnSelchangeLogTab(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int nSelect = m_LogTab.GetCurSel();
	if (nSelect >= 0)
		DoTab(nSelect);
	*pResult = 0;
}


void CLogManager::ShowSendLogSearchList(SQLRECORDSET & rs)
{
	//删除list中的所有数据item
	m_LogList.DeleteAllItems();
	
	//取得list中的列数
	int nColumnCount =m_LogList.GetHeaderCtrl()->GetItemCount();
	int i=0;
	for (i=0;i < nColumnCount;i++)
	{
		//删除列数
		m_LogList.DeleteColumn(0);
	}
	//////////////////////////////////////////////////////////////////////////
	//对日志对话框中的List控件添加列
	//////////////////////////////////////////////////////////////////////////
	m_LogList.InsertColumn(0,"ID",LVCFMT_LEFT,60);
	m_LogList.InsertColumn(1,"订单ID",LVCFMT_LEFT,90);
	m_LogList.InsertColumn(2,"对方号码",LVCFMT_LEFT,90);
	m_LogList.InsertColumn(3,"发送时间",LVCFMT_LEFT,90);
	m_LogList.InsertColumn(4,"状态",LVCFMT_LEFT,90);
	m_LogList.SetExtendedStyle(LVS_REPORT);//为表格添加附加属性 让表格有方格线
	
	if(NULL==rs)
	{
		return;
	}
	//////////////////////////////////////////////////////////////////////////
	///数据库操作
	CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
	CSMSADO &Ado=pCSMSApp->m_SMSAdo;
	
	i=0;
	CString id;
	
	CString orderFormID;
	CString phoneNumber;
	
	CString sendDataTime;
	CString state;
	int nState;
	while(!rs->rsEOF)
	{
		id.Format("%d",Ado.GetIntegerFieldVal(rs,"id"));
		orderFormID.Format("%d",Ado.GetIntegerFieldVal(rs,"orderid"));
		phoneNumber=Ado.GetTextFieldVal(rs,"pnumber");
		sendDataTime=Ado.GetDateTimeFeildTextValue(rs,"sendtime");
		nState=Ado.GetIntegerFieldVal(rs,"state");
		if(1==nState)
		{
			state="成功";
		}
		else
		{
			state="失败";
		}
		m_LogList.InsertItem(i,id);
		m_LogList.SetItemText(i,1,orderFormID);
		m_LogList.SetItemText(i,2,phoneNumber);
		m_LogList.SetItemText(i,3,sendDataTime);
		m_LogList.SetItemText(i,4,state);
		i++;
		rs->MoveNext();
	}
	
}


void CLogManager::ShowRecvLogSearchList(SQLRECORDSET & rs)
{
	//删除list中的所有数据item
	m_LogList.DeleteAllItems();
	
	//取得list中的列数
	int nColumnCount =m_LogList.GetHeaderCtrl()->GetItemCount();
	for (int i=0;i < nColumnCount;i++)
	{
		//删除列数
		m_LogList.DeleteColumn(0);
	}
	
	m_LogList.InsertColumn(0,"ID",LVCFMT_LEFT,50);
	m_LogList.InsertColumn(1,"对方号码",LVCFMT_LEFT,100);
	m_LogList.InsertColumn(2,"接收时间",LVCFMT_LEFT,100);
	m_LogList.InsertColumn(3,"内容",LVCFMT_LEFT,60);
	m_LogList.SetExtendedStyle(LVS_REPORT);//为表格添加附加属性 让表格有方格线
	
	if(NULL==rs)
	{
		return;
	}
	//////////////////////////////////////////////////////////////////////////
	///数据库操作
	CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
	CSMSADO &Ado=pCSMSApp->m_SMSAdo;
	
	i=0;
	CString id;
	
	CString recvContent;
	CString phoneNumber;
	
	CString recvDataTime;
	CString state;
	while(!rs->rsEOF)
	{
		id.Format("%d",Ado.GetIntegerFieldVal(rs,"id"));
		phoneNumber=Ado.GetTextFieldVal(rs,"peernumber");
		recvContent=Ado.GetTextFieldVal(rs,"replycontent");
		recvDataTime=Ado.GetDateTimeFeildTextValue(rs,"replytime");
		
		m_LogList.InsertItem(i,id);
		m_LogList.SetItemText(i,1,phoneNumber);
		m_LogList.SetItemText(i,2,recvDataTime);
		m_LogList.SetItemText(i,3,recvContent);
		i++;
		rs->MoveNext();
	}

}
BOOL CLogManager::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
	if (pMsg->message == WM_KEYDOWN)
	{	
		if (pMsg->wParam == VK_RETURN)	return TRUE;
		if (pMsg->wParam == VK_ESCAPE)	return TRUE;
	} 
	return CDialog::PreTranslateMessage(pMsg);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -