// easyMailDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "easyMail.h"
#include "easyMailDlg.h"
#include "contactsDlg.h"
#include "WriteDialog.h"
#include "SetDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CeasyMailDlg 对话框
CeasyMailDlg::CeasyMailDlg(CWnd* pParent /*=NULL*/)
: CDialog(CeasyMailDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
m_mailInfo = new MailInfo;
}
void CeasyMailDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_TREE_FILE, treeCtrl1);
DDX_Control(pDX, IDC_TREE_CONTACT, treeCtrl2);
DDX_Control(pDX, IDC_PROGRESS2, m_stateProgress);
DDX_Control(pDX, IDC_LIST_MAILBOX, m_list);
}
BEGIN_MESSAGE_MAP(CeasyMailDlg, CDialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_FILE, &CeasyMailDlg::OnTvnSelchangedTree3)
ON_COMMAND(ID_32775, &CeasyMailDlg::On32775)
ON_COMMAND(ID_32776, &CeasyMailDlg::On32776)
ON_COMMAND(ID_32772, &CeasyMailDlg::On32772)
ON_COMMAND(ID_32773, &CeasyMailDlg::On32773)
ON_COMMAND(ID_327710, &CeasyMailDlg::On327710)
ON_COMMAND(ID_32782,&CeasyMailDlg::On32782)
// ON_WM_TIMER()
// ON_STN_CLICKED(IDC_RECEIVE, &CeasyMailDlg::OnStnClickedReceive)
ON_BN_CLICKED(IDC_BUTTON_RECEIVEMAIL, &CeasyMailDlg::OnBnClickedButtonReceivemail)
ON_BN_CLICKED(IDC_BUTTON_SENDMAIL, &CeasyMailDlg::OnBnClickedButtonSendmail)
ON_NOTIFY(NM_CLICK, IDC_LIST_MAILBOX, &CeasyMailDlg::OnNMClickListMailbox)
END_MESSAGE_MAP()
// CeasyMailDlg 消息处理程序
BOOL CeasyMailDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
treeList1.Create(IDB_BITMAP1,16,1,RGB(255,255,255));
treeList1.SetBkColor(RGB(255,255,100));
treeCtrl1.SetImageList(&treeList1,TVSIL_NORMAL);
item1 = treeCtrl1.InsertItem(_T("个人文件夹"),0,0,TVI_ROOT);
treeCtrl1.SetItemData(item1,(DWORD)(0));
item2 = treeCtrl1.InsertItem(_T("草稿"),0,0,item1);
treeCtrl1.SetItemData(item2,(DWORD)(0));
item3 = treeCtrl1.InsertItem(_T("发件箱"),0,0,item1);
treeCtrl1.SetItemData(item3,(DWORD)(0));
item4 = treeCtrl1.InsertItem(_T("收件箱"),0,0,item1);
treeCtrl1.SetItemData(item4,(DWORD)(3));
item5 = treeCtrl1.InsertItem(_T("已发送邮件"),0,0,item1);
treeCtrl1.SetItemData(item5,(DWORD)(0));
item6 = treeCtrl1.InsertItem(_T("已删除邮件"),0,0,item1);
treeCtrl1.SetItemData(item6,(DWORD)(0));
treeCtrl2.SetImageList(&treeList1,TVSIL_NORMAL);
item7 = treeCtrl2.InsertItem(_T("联系人"),0,0,TVI_ROOT);
treeCtrl2.SetItemData(item7,(DWORD)(0));
item8 = treeCtrl2.InsertItem(_T("同事"),0,0,item7);
treeCtrl2.SetItemData(item8,(DWORD)(0));
item9 = treeCtrl2.InsertItem(_T("亲人"),0,0,item7);
treeCtrl2.SetItemData(item9,(DWORD)(0));
item10 = treeCtrl2.InsertItem(_T("朋友"),0,0,item7);
treeCtrl2.SetItemData(item10,(DWORD)(3));
item11 = treeCtrl2.InsertItem(_T("黑名单"),0,0,item7);
treeCtrl2.SetItemData(item11,(DWORD)(0));
m_stateProgress.SetRange(0,100);
m_list.SetExtendedStyle(m_list.GetExtendedStyle()|LVS_EX_SUBITEMIMAGES | LVS_EX_FULLROWSELECT );
bitmap1.LoadBitmapA(IDB_BITMAP1);
bitmap2.LoadBitmapA(IDB_BITMAP2);
treeList2.Create(16,16,ILC_COLOR24|ILC_MASK,0,4);
treeList2.Add(&bitmap1,RGB(255,255,100));
treeList2.Add(&bitmap2,RGB(155,155,100));
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void CeasyMailDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
HCURSOR CeasyMailDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
void CeasyMailDlg::OnTvnSelchangedTree3(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMTREEVIEW pNMTreeView = reinterpret_cast<LPNMTREEVIEW>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
char dirname[4][10]={"收件箱","发件箱","草稿箱","垃圾箱"};
char mailPath[MAX_PATH];
DWORD size=MAX_PATH;
GetCurrentDirectory(size,mailPath);
char *fullname;
CString filename,parentname,rootname;
HTREEITEM h = treeCtrl1.GetSelectedItem();
if(h == NULL)
{
MessageBox("未选择文件夹,请选择后再尝试访问内容!","未选择帐户",MB_OK|MB_ICONSTOP);
}
else
{
CString strSelect = treeCtrl1.GetItemText(h);
fullname = strSelect.GetBuffer(strSelect.GetLength()+1);
if(strcmp(fullname,"个人文件夹"))
{
m_list.SetImageList(&treeList2,LVSIL_SMALL);
m_list.SetImageList(&treeList2,LVSIL_SMALL);
m_list.InsertColumn(0,"图标",LVCFMT_LEFT,60);
m_list.InsertColumn(1,"内容 ",LVCFMT_LEFT,300);
if(!strcmp(dirname[0],fullname))
{
/*treeList2.Create(IDB_BITMAP2,25,3,RGB(255,255,255));
treeList2.SetBkColor(RGB(255,255,100));
m_list.SetImageList(&treeList2,TVSIL_NORMAL);
m_list.InsertColumn(*/
for(int i=0;i<m_AllMailList.size();i++)
{
m_list.InsertItem(i,NULL,1); //--这里是插入一行;
string str = "";
int last= m_AllMailList[i].find_first_of(" ");
if(last!=-1)
str = m_AllMailList[i].substr(0,last);
else
str = m_AllMailList[i].substr(0);
//m_list.SetItemText(i,0,(LPSTR)str.c_str());
//m_list.InsertItem(i+1,str.c_str());
LVITEM item;
item.iItem=i;
item.iSubItem=1;
item.mask=LVIF_TEXT;
item.pszText= (LPSTR)str.c_str();
m_list.SetItem(&item);//插入字符
item.iItem=i;
item.iSubItem=0;
item.mask=LVIF_IMAGE;
item.iImage=0;
m_list.SetItem(&item); //这是第一列我插入的是图片,用的是LVIF_IMAGE;*/
}
}
}
}
*pResult = 0;
}
void CeasyMailDlg::On32775()
{
// TODO: 在此添加命令处理程序代码
CContactsDlg cDlg;
cDlg.DoModal();
}
void CeasyMailDlg::On32776()
{
// TODO: 在此添加命令处理程序代码
CWriteDialog writeDlg;
writeDlg.DoModal();
}
void CeasyMailDlg::On32772()
{
// TODO: 在此添加命令处理程序代码
CSetDialog setDlg;
setDlg.DoModal();
}
void CeasyMailDlg::On32773()
{
// TODO: 在此添加命令处理程序代码
PostQuitMessage(0);
}
void CeasyMailDlg::On327710()
{
// TODO: 在此添加命令处理程序代码
CWriteDialog writeDlg;
writeDlg.DoModal();
}
void CeasyMailDlg::OnBnClickedButtonReceivemail()
{
// TODO: Add your control notification handler code here
DWORD size=MAX_PATH;
char receivePath[MAX_PATH];
GetCurrentDirectory(size,receivePath);
m_mailConfig.load();
m_mailInfo = m_mailConfig.getPersonConfig();
CString strPopAddr; // Pop3服务器
CString strAccount; // 帐号
CString strPassword; // 密码
strPopAddr = m_mailInfo->serverAddress;
strAccount = m_mailInfo->name;
strPassword = m_mailInfo->password;
//准备收信地址
strcat(receivePath,"\\");
strcat(receivePath,(LPSTR)(LPCTSTR)strAccount);
strcat(receivePath,"\\收件箱\\");
strcpy(m_path,receivePath);
//准备服务器地址
char* pPop = strstr((LPSTR)(LPCTSTR)strPopAddr,"@");
string popServer = pPop;
popServer = popServer.substr(1);
popServer = "pop."+popServer;
Sleep(30);
if(!m_myPop3.Connect(popServer,110))
{
AfxMessageBox("连接服务器失败!");
return;
}
Sleep(30);
m_stateProgress.SetPos(15);
//验证用户名密码
if(
简单邮件客户端实现POP3和SMTP协议
4星 · 超过85%的资源 需积分: 37 112 浏览量
2010-06-19
22:35:11
上传
评论 8
收藏 206KB RAR 举报
software_cool
- 粉丝: 0
- 资源: 3
最新资源
- 基于STM32 F407 Discovery 单片机实现秀吧自动鸡尾酒贩卖机,流量控制源码
- 各种回归模型适用条件-logistic回归-(2).pdf
- 基于文本和多模态数据的风险识别题目名称Emoji复杂文本识别python源码+项目说明.zip
- 基于STM32单片机实现的的智能晾衣架
- 基于安卓Android的新闻发布系统app源代码+文档说明(高分项目).zip
- 基于SkyTra-S1216F8-BD模块gps串口模块AD09设计设计硬件(原理图+PCB)文件.zip
- 用OpenGL实现的windows版的魔方,最终会实现N阶魔方的自动还原算法.zip
- Python实现基于CNN+LSTM的网络流量检测系统源码+文档说明(高分课程设计).zip
- opengl+imgui的一个小框架.zip
- 1-楼子沟10000地形地质图.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页