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

📄 cmailview.cpp

📁 本程序是用来发送电子邮件的源代码
💻 CPP
字号:
// CMAILVIEW.cpp : implementation file
//

#include "stdafx.h"
#include "SendMail.h"
#include "SendMailDlg.h"
#include "MAILVIEW.h"
#include "MailModi.h"
#include "User.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMAILVIEW dialog


CMAILVIEW::CMAILVIEW(CWnd* pParent /*=NULL*/)
	: CDialog(CMAILVIEW::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMAILVIEW)
	m_Body = _T("");
	m_Flag = _T("");
	m_From = _T("");
	m_To = _T("");
	//}}AFX_DATA_INIT
}


void CMAILVIEW::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMAILVIEW)
	DDX_Control(pDX, IDC_VIEW_TIME, m_lbxTime);
	DDX_Text(pDX, IDC_VIEW_BODY, m_Body);
	DDX_Text(pDX, IDC_VIEW_FLAG, m_Flag);
	DDX_Text(pDX, IDC_VIEW_FROM, m_From);
	DDX_Text(pDX, IDC_VIEW_TO, m_To);
	//}}AFX_DATA_MAP
}

void CMAILVIEW::FillListboxWithTime()
{
	int iIndex;
	CDatabase db;
	CMailModi* pTimeset=NULL;
	try
	{
		if (db.Open("mail"))
		{
			pTimeset=new CMailModi();
			pTimeset->Open(CRecordset::snapshot,"select * from mail ORDER BY mail_id ASC");
			do
			{
				if (pTimeset->m_time!=CString(_T("")))
				{
			    User* pUser=new User();				
				pUser->m_UserBody=pTimeset->m_message;
				pUser->m_UserFlag=pTimeset->m_flag;
				pUser->m_UserFrom=pTimeset->m_mail_from;
				pUser->m_UserTo=pTimeset->m_mail_to;
				pUser->m_UserTime=pTimeset->m_time;
				iIndex=m_lbxTime.AddString(pTimeset->m_time);
				m_lbxTime.SetItemData(iIndex,(DWORD)pUser);
				}
				pTimeset->MoveNext();
			}while(!pTimeset->IsEOF());
            m_lbxTime.AddString("");
			pTimeset->Close();
			delete pTimeset;
			db.Close();  

		}
	}
	catch(CDBException* pe)
	{
		AfxMessageBox(pe->m_strError);
		if(pTimeset)
		{
			if(pTimeset->IsOpen())
			{
				pTimeset->Close();
			}
			delete pTimeset;
		}
		if(db.IsOpen())
		{
			db.Close();
		}
		pe->Delete();
	}
}

BOOL CMAILVIEW::GetSelectedTime(int* piIndex,User** ppUser)
{
	BOOL bSuccess=FALSE;
	int iIndex;
    if (LB_ERR!=(iIndex=m_lbxTime.GetCurSel()))
	{
	*piIndex=iIndex;
	*ppUser=(User*)m_lbxTime.GetItemData(iIndex);
	bSuccess=TRUE;
	}
	return bSuccess;
}

BOOL CMAILVIEW::DeleteTime(User* pUser)
{
	BOOL bSuccess=FALSE;
	CDatabase db;
	try
	{
		if (db.Open("mail"))
		{		    
			CString strSQL=CString("delete from mail where time='");
			strSQL+=pUser->m_UserTime+CString("'");	
			db.ExecuteSQL(strSQL);
			bSuccess=TRUE;
		}
	}
	catch(CDBException* pe)
    {
		AfxMessageBox(pe->m_strError);
		if (db.IsOpen())
		{
			db.Close();
		}
		pe->Delete();
	}
	return bSuccess;
}

BEGIN_MESSAGE_MAP(CMAILVIEW, CDialog)
	//{{AFX_MSG_MAP(CMAILVIEW)
	ON_BN_CLICKED(IDC_VIEW_QUERY, OnViewQuery)
	ON_LBN_SELCHANGE(IDC_VIEW_TIME, OnSelchangeViewTime)
	ON_BN_CLICKED(IDC_VIEW_DEL, OnViewDel)
	ON_BN_CLICKED(IDC_VIEW_PREPARESEND, OnViewPreparesend)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMAILVIEW message handlers

void CMAILVIEW::OnViewQuery() 
{
	FillListboxWithTime();  //发送邮件时间插入列表框
	m_lbxTime.SetCurSel(-1);
}

void CMAILVIEW::OnSelchangeViewTime() 
{
	// TODO: Add your control notification handler code here
	int iIndex;
	User* pUser;
	int i;
	int j=3;
	i=m_lbxTime.GetCurSel();
	j=m_lbxTime.GetCount();
    if (i!=j-1)
	{
	if (GetSelectedTime(&iIndex,&pUser))
	{
		m_Body=pUser->m_UserBody;
		m_From=pUser->m_UserFrom;
		m_To=pUser->m_UserTo;
		m_Flag=pUser->m_UserFlag;
	}
	}
	UpdateData(FALSE);
	
}

void CMAILVIEW::OnViewDel() 
{
	// TODO: Add your control notification handler code here
	int iIndex;
	User* pUser=NULL;
	if (GetSelectedTime(&iIndex,&pUser))
	{
		if(pUser)
		{
			UpdateData();
			CString strMSG;
			strMSG="确定删除时间为";
			strMSG+=pUser->m_UserTime;
            strMSG+="?";
			if (IDYES==AfxMessageBox(strMSG,MB_YESNOCANCEL))
			{
				if (DeleteTime(pUser))
				{
					if (LB_ERR==m_lbxTime.DeleteString(iIndex))
					{
						AfxMessageBox("删除成功,但从列表框中删除有点问题!");
					}
					m_lbxTime.SetCurSel(-1);
					m_Body="";
					m_Flag="";
					m_From="";
					m_To="";
					UpdateData(FALSE);
				}
				else
				{
					AfxMessageBox("删除失败!");
				}
			}
		}
	}
	else
	{
		AfxMessageBox("必须作删除选定!");
	}        
	
}

void CMAILVIEW::OnViewPreparesend() 
{
	//添加传数据到主见面的功能;
	CSendMailDlg send;
	send.DoModal();
}

⌨️ 快捷键说明

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