// MySendDlg.cpp : implementation file // #include "stdafx.h" #include "myMailServer.h" #include "MySendDlg.h" #include "MyMailServerDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CMySendDlg dialog CMySendDlg::CMySendDlg(CWnd* pParent /*=NULL*/) : CDialog(CMySendDlg::IDD, pParent) { //{{AFX_DATA_INIT(CMySendDlg) m_strAddres = _T(""); m_strContent = _T(""); m_strFile = _T(""); m_strMailTitle = _T(""); //}}AFX_DATA_INIT } void CMySendDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CMySendDlg) DDX_Control(pDX, IDC_CONTENT, m_content); DDX_Control(pDX, IDC_MAILTITLE, m_mailTitle); DDX_Control(pDX, IDC_FILE, m_file); DDX_Control(pDX, IDC_ADDRES, m_addres); DDX_Control(pDX, IDC_TITLE, m_bnTitle); DDX_Control(pDX, IDC_REPlY, m_bnReply); DDX_Control(pDX, IDC_QUIT, m_bnQuit); DDX_Control(pDX, IDC_PRE, m_bnPre); DDX_Control(pDX, IDC_NEXT, m_bnNext); DDX_Control(pDX, IDC_MIN, m_bnMin); DDX_Control(pDX, IDC_MAX, m_bnMax); DDX_Control(pDX, IDC_INFO, m_bnInfo); DDX_Control(pDX, IDC_CLEAR, m_bnClear); DDX_Text(pDX, IDC_SADDRES, m_strAddres); DDX_Text(pDX, IDC_SCONTENT, m_strContent); DDX_Text(pDX, IDC_SFILE, m_strFile); DDX_Text(pDX, IDC_SMAILTITLE, m_strMailTitle); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CMySendDlg, CDialog) //{{AFX_MSG_MAP(CMySendDlg) ON_BN_CLICKED(IDC_QUIT, OnQuit) ON_WM_CTLCOLOR() ON_WM_LBUTTONDOWN() ON_BN_CLICKED(IDC_PRE, OnPre) ON_BN_CLICKED(IDC_NEXT, OnNext) ON_BN_CLICKED(IDC_REPlY, OnREPlY) ON_BN_CLICKED(IDC_CLEAR, OnClear) ON_BN_CLICKED(IDC_Serch, OnSerch) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMySendDlg message handlers void CMySendDlg::OnQuit() { // TODO: Add your control notification handler code here OnOK(); } BOOL CMySendDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_bmBack.DeleteObject(); m_brBack.DeleteObject(); m_bmBack.LoadBitmap(IDB_SBACK); //导入背景图片 m_brBack.CreatePatternBrush(&m_bmBack); //保存窗体背景图片,供OnCtlColor()调用 //SetDialogFace(); //设置对话框图片 CString strFontName = _T("隶书"); //设置IDC_BUTTON_EXIT按钮图片 m_bnQuit.SetBitmaps(IDB_QUIT_N, IDB_QUIT_C, IDB_QUIT_H); m_bnMin.SetBitmaps(IDB_MIN_N, IDB_MIN_C, IDB_MIN_H); m_bnMax.SetBitmaps(IDB_MAX_D,NULL,NULL,IDB_MAX_D); ////////////////////////////////////////////////////////////////////////// // set btnHello //set bitmap m_bnReply.SetBitmaps(IDB_BLUE_N, NULL, IDB_BLUE_H); //位图 m_bnReply.SetForceColor(RGB(255, 255, 0), RGB(255, 255, 255), RGB(255, 255, 255)); //文字颜色 m_bnReply.SetSound(MAKEINTRESOURCE(IDR_WAVEMOVE), ::GetModuleHandle(NULL)); //动态 m_bnReply.SetSound(MAKEINTRESOURCE(IDR_WAVECLICK), ::GetModuleHandle(NULL), TRUE); //按下声音 // m_bnReply.SetFocusRectDeflateRect(12,12, FALSE); //焦点框与按钮边界距离 // m_bnReply.SetDrawFocusRect(TRUE, FALSE); //画焦点(默认不画) m_bnReply.SizeToContent(); //按钮自动适应第一个图片大小 m_bnReply.SetWindowText(TEXT("发送邮件")); //改变按钮显示文字 m_bnReply.SetBtnCursor(IDC_CURSOR_HAND, FALSE); //按钮鼠标类型 // m_bnReply.SetTextAlign(NL_ALIGN_CENTER, FALSE); //设置文字排列方式 //set font m_bnReply .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetFont3D(TRUE, 3, 2, FALSE) //显示文字3d效果 .SetText3DBKColor(RGB(95, 95, 95)) //3d阴影颜色 .SetFontBold(TRUE, FALSE) //粗体 .SetFontSize(18, FALSE) //字体大小 .SetFontName(strFontName) //字体名称 ; ////////////////////////////////////////////////////////////////////////// // set btnKill //set bitmap m_bnClear.SetBitmaps(IDB_BLUE_N, NULL, IDB_BLUE_H); //位图 m_bnClear.SetForceColor(RGB(255, 255, 0), RGB(255, 255, 255), RGB(255, 255, 255)); //文字颜色 m_bnClear.SetSound(MAKEINTRESOURCE(IDR_WAVEMOVE), ::GetModuleHandle(NULL)); //动态 m_bnClear.SetSound(MAKEINTRESOURCE(IDR_WAVECLICK), ::GetModuleHandle(NULL), TRUE); //按下声音 m_bnClear.SizeToContent(); //按钮自动适应第一个图片大小 m_bnClear.SetWindowText(TEXT("重写邮件")); //改变按钮显示文字 m_bnClear.SetBtnCursor(IDC_CURSOR_HAND, FALSE); //按钮鼠标类型 // m_bnClear.SetTextAlign(NL_ALIGN_RIGHT, FALSE); //设置文字排列方式 //set font m_bnClear .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetFont3D(TRUE, 3, 2, FALSE) //显示文字3d效果 .SetText3DBKColor(RGB(95, 95, 95)) //3d阴影颜色 .SetFontBold(TRUE, FALSE) //粗体 .SetFontSize(18, FALSE) //字体大小 .SetFontName(strFontName) //字体名称 ; ////////////////////////////////////////////////////////////////////////// // set btnBackward //set bitmap m_bnPre.SetBitmaps(IDB_SET_N, IDB_SET_N, IDB_SET_H, IDB_SET_N); //位图 m_bnPre.SetForceColor(RGB(255, 255, 0), RGB(255, 255, 255), RGB(255, 255, 255), FALSE); //文字颜色 m_bnPre.SetSound(MAKEINTRESOURCE(IDR_WAVEMOVE), ::GetModuleHandle(NULL)); //动态 m_bnPre.SetSound(MAKEINTRESOURCE(IDR_WAVECLICK), ::GetModuleHandle(NULL), TRUE); //按下声音 m_bnPre.SizeToContent(); //按钮自动适应第一个图片大小 m_bnPre.SetBtnCursor(IDC_CURSOR_HAND, FALSE); //按钮鼠标类型 m_bnPre.SetWindowText(TEXT("返回")); //改变按钮显示文字 m_bnPre.SetTextAlign(NL_ALIGN_RIGHT, FALSE); //设置文字排列方式 //set font m_bnPre .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetFont3D(TRUE, 3, 2, FALSE) //显示文字3d效果 .SetText3DBKColor(RGB(95, 95, 95), FALSE) //3d阴影颜色 .SetFontSize(12, FALSE) //字体大小 .SetFontName(strFontName) //字体名称 ; ////////////////////////////////////////////////////////////////////////// // set btnForward //set bitmap m_bnNext.SetBitmaps(IDB_EXIT_N, IDB_EXIT_N, IDB_EXIT_H, IDB_EXIT_N); //位图 m_bnNext.SetForceColor(RGB(255, 255, 0), RGB(255, 255, 255), RGB(255, 255, 255), FALSE); //文字颜色 m_bnNext.SetSound(MAKEINTRESOURCE(IDR_WAVEMOVE), ::GetModuleHandle(NULL)); //动态 m_bnNext.SetSound(MAKEINTRESOURCE(IDR_WAVECLICK), ::GetModuleHandle(NULL), TRUE); //按下声音 m_bnNext.SizeToContent(); //按钮自动适应第一个图片大小 m_bnNext.SetBtnCursor(IDC_CURSOR_HAND, FALSE); //按钮鼠标类型 m_bnNext.SetWindowText(TEXT("退出")); //改变按钮显示文字 m_bnNext.SetTextAlign(NL_ALIGN_LEFT, FALSE); //设置文字排列方式 //set font m_bnNext .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetFont3D(TRUE, 3, 2, FALSE) //显示文字3d效果 .SetText3DBKColor(RGB(95, 95, 95), FALSE) //3d阴影颜色 .SetFontSize(12, FALSE) //字体大小 .SetFontName(strFontName) //字体名称 ; //----------------------其实不用象下面这么麻烦,CLabel类就很好用------------------------------- ////////////////////////////////////////////////////////////////////////// // set btnTitle m_bnTitle.SetForceColor(RGB(255, 255, 255), RGB(255, 255, 255), RGB(255, 255, 255), FALSE); //文字颜色 m_bnNext.SetTextAlign(NL_ALIGN_LEFT, FALSE); //设置文字排列方式 m_bnTitle .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetDrawTextAsDisable(FALSE, FALSE) //按定义色彩画失效文字 .SetFontBold(TRUE, FALSE) //粗体 .SetFont3D(TRUE, 2, 1, FALSE) //显示文字3d效果 .SetText3DBKColor(RGB(95, 95, 95), FALSE) //3d阴影颜色 .SetFontSize(16 , FALSE) //字体大小 .SetFontName(strFontName) //字体名称 ; ////////////////////////////////////////////////////////////////////////// // set btnInfo m_bnInfo.SetForceColor(RGB(0, 138, 260), RGB(0, 138, 260), RGB(0, 138, 260), FALSE); //文字颜色 m_bnInfo.SetTextAlign(NL_ALIGN_LEFT, FALSE); //设置文字排列方式 m_bnInfo .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetDrawTextAsDisable(FALSE) //按定义色彩画失效文字 ; ////////////////////////////////////////////////////////////////////////// // set addres m_addres.SetForceColor(RGB(0, 138, 260), RGB(0, 138, 260), RGB(0, 138, 260), FALSE); //文字颜色 m_addres.SetTextAlign(NL_ALIGN_LEFT, FALSE); //设置文字排列方式 m_addres .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetDrawTextAsDisable(FALSE) //按定义色彩画失效文字 ; ////////////////////////////////////////////////////////////////////////// // set file m_file.SetForceColor(RGB(0, 138, 260), RGB(0, 138, 260), RGB(0, 138, 260), FALSE); //文字颜色 m_file.SetTextAlign(NL_ALIGN_LEFT, FALSE); //设置文字排列方式 m_file .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetDrawTextAsDisable(FALSE) //按定义色彩画失效文字 ; ////////////////////////////////////////////////////////////////////////// // set mailTitle m_mailTitle.SetForceColor(RGB(0, 138, 260), RGB(0, 138, 260), RGB(0, 138, 260), FALSE); //文字颜色 m_mailTitle.SetTextAlign(NL_ALIGN_LEFT, FALSE); //设置文字排列方式 m_mailTitle .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetDrawTextAsDisable(FALSE) //按定义色彩画失效文字 ; ////////////////////////////////////////////////////////////////////////// // set Content m_content.SetForceColor(RGB(0, 138, 260), RGB(0, 138, 260), RGB(0, 138, 260), FALSE); //文字颜色 m_content.SetTextAlign(NL_ALIGN_LEFT, FALSE); //设置文字排列方式 m_content .SetDrawText(TRUE, FALSE) //是否显示按钮文字 .SetDrawTextAsDisable(FALSE) //按定义色彩画失效文字 ; SetWindowText("Mail sender"); return TRUE; // return TRUE unless you set the focus to a control } HBRUSH CMySendDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if(nCtlColor == CTLCOLOR_DLG || nCtlColor == CTLCOLOR_BTN) { pDC->SetBkMode(TRANSPARENT); return m_brBack; } // TODO: Return a different brush if the default is not desired return hbr; } void CMySendDlg::OnLButtonDown(UINT nFlags, CPoint point) { if (point.y < 26) PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y)); CDialog::OnLButtonDown(nFlags, point); } void CMySendDlg::OnPre() { // TODO: Add your control notification handler code here OnOK(); CMyMailServerDlg dlg; dlg.DoModal(); } void CMySendDlg::OnNext() { // TODO: Add your control notification handler code here OnOK(); } void CMySendDlg::OnREPlY() { // TODO: Add your control notification handler code here UpdateData(); CString m_strMailServer; m_strAddres.TrimLeft(); m_strAddres.TrimRight(); m_strMailTitle.TrimLeft(); m_strMailTitle.TrimRight(); if(m_strFile != "") { m_strMailTitle.TrimLeft(); m_strMailTitle.TrimRight(); } if(m_strAddres.GetLength() < 3) { AfxMessageBox("请填写正确的收件人邮箱"); return; } try { jmail::IMessagePtr pMessage("JMail.Message"); // 发件人邮箱 pMessage->From = (LPCTSTR)m_strSender; // 发件人姓名 pMessage->FromName = "yang"; // 添加收件人 pMessage->AddRecipient((LPCTSTR)m_strAddres, "", ""); // 优先级设置,1-5逐次降低, 3为中级 pMessage->Priority = 3; // 编码方式设置, 默认是iso-8859-1 pMessage->Charset = "GB2312"; // 主题 pMessage->Subject = (LPCTSTR)m_strMailTitle; // 正文 pMessage->Body = (LPCTSTR)m_strContent; // 开始发送 if(m_strFile != "") { pMessage->AddAttachment((LPCTSTR)m_strFile, VARIANT_TRUE, "image/gif"); } pMessage->Send((LPCTSTR)m_strMailServer, VARIANT_FALSE); pMessage.Release(); AfxMessageBox("发送成功!"); } catch (_com_error e) { CString strErr; strErr.Format("错误信息:%s\r\n错误描述:%s", (LPCTSTR)e.ErrorMessage(), (LPCTSTR)e.Description()); AfxMessageBox(strErr); } } void CMySendDlg::OnClear() { // TODO: Add your control notification handler code here m_strContent = ""; UpdateData(false); } void CMySendDlg::OnSerch() { // TODO: Add your control notification handler code here CFileDialog dlg(TRUE);///TRUE为OPEN对话框,FALSE为SAVE AS对话框 if(dlg.DoModal()==IDOK) m_strFile = dlg.GetPathName(); UpdateData(false); }