📄 maildlg.cpp
字号:
// MailDlg.cpp : implementation file
//
#include "stdafx.h"
#include "gpmis.h"
#include "MailDlg.h"
#include "MainFrm.h"
#include "Global.h"
#include "teacher.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMailDlg dialog
extern CGPMISApp theApp;
CMailDlg::CMailDlg(CWnd* pParent /*=NULL*/, const CString& sTeacher, CString sSubject, int nType )
: CDialog(CMailDlg::IDD, pParent)
{
m_sTeacher = sTeacher;
m_nType = nType;
//{{AFX_DATA_INIT(CMailDlg)
m_sSubject = sSubject;
m_sBody = _T("");
m_sReceiver = -1;
//}}AFX_DATA_INIT
}
void CMailDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMailDlg)
DDX_Control(pDX, IDC_DELETE, m_btnDelete);
DDX_Control(pDX, IDC_BROWSE, m_btnBrowse);
DDX_Control(pDX, IDC_STATIC_1, m_sta_1);
DDX_Control(pDX, IDC_EDIT_BODY, m_edtBody);
DDX_Control(pDX, IDC_AFFIX_COMBO, m_cmbAffix);
DDX_Control(pDX, IDC_RECEIVER_COMBO, m_cmbReceiver);
DDX_Text(pDX, IDC_EDIT_SUBJECT, m_sSubject);
DDX_Text(pDX, IDC_EDIT_BODY, m_sBody);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMailDlg, CDialog)
//{{AFX_MSG_MAP(CMailDlg)
ON_BN_CLICKED(IDC_ALL, OnAll)
ON_BN_CLICKED(IDC_CLEAR, OnClear)
ON_CBN_SELCHANGE(IDC_RECEIVER_COMBO, OnSelchangeReceiverCombo)
ON_BN_CLICKED(IDC_BROWSE, OnBrowse)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMailDlg message handlers
BOOL CMailDlg::OnInitDialog()
{
CDialog::OnInitDialog();
HICON hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
SetIcon(hIcon, TRUE); // Set big icon
SetIcon(hIcon, FALSE);// Set small icon
// TODO: Add extra initialization here
if( m_nType == 1 )
{
m_sta_1.ShowWindow(SW_HIDE);
m_cmbAffix.ShowWindow(SW_HIDE);
m_btnBrowse.ShowWindow(SW_HIDE);
m_btnDelete.ShowWindow(SW_HIDE);
}
else
{
CRect rc, DlgRc;
GetWindowRect(&DlgRc);
m_edtBody.GetWindowRect(&rc);
int nMove = 36;
m_edtBody.SetWindowPos(&wndTop, rc.left- DlgRc.left - 3, rc.top - DlgRc.top - 22, rc.Width(), rc.Height() - nMove, SWP_SHOWWINDOW);
}
Initialize();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CMailDlg::Initialize()
{
// initialize combobox
int count = 0;
m_cmbReceiver.ResetContent();
CTeacherList& list = CGlobal::GetInstance().m_teacherList;
POSITION pos = list.GetHeadPosition();
int i = 0;
while( pos )
{
CTeacher* pTeacher = list.GetNext(pos);
if( pTeacher )
{
m_cmbReceiver.AddRow(i,pTeacher->GetName());
if( m_sTeacher == "" || m_sTeacher == pTeacher->GetName() )
m_cmbReceiver.SetCheck(i,TRUE);
i++;
}
}
}
void CMailDlg::OnAll()
{
// TODO: Add your control notification handler code here
m_cmbReceiver.SelectAll(TRUE);
}
void CMailDlg::OnClear()
{
// TODO: Add your control notification handler code here
m_cmbReceiver.SelectAll(FALSE);
}
void CMailDlg::OnSelchangeReceiverCombo()
{
// TODO: Add your control notification handler code here
UpdateData();
}
void CMailDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData();
m_sReceiver = "";
for(int i = 0; i < m_cmbReceiver.GetCount() ; i++)
{
if( m_cmbReceiver.GetCheck(i) == 1 )
{
CString sTeacher;
m_cmbReceiver.GetLBText(i, sTeacher);
CTeacher* pTeacher = CGlobal::GetInstance().FindTeacher(sTeacher);
if( pTeacher && pTeacher->GetEMail().Find("@") >0 )
{
m_sReceiver += pTeacher->GetEMail();
m_sReceiver += ",";
}
}
}
if( m_sReceiver != "" && m_sReceiver.GetAt(m_sReceiver.GetLength() - 1) == ',' )
m_sReceiver = m_sReceiver.Left(m_sReceiver.GetLength() - 1);
if( m_nType == 2 )
{
m_strAffixPath = "";
for(int i = m_cmbAffix.GetCount() - 1; i >=0 ; i--)
{
if( m_cmbAffix.GetCheck(i) == 1 )
{
CString str;
m_cmbAffix.GetLBText(i, str);
if( m_strAffixPath != "" )
{
m_strAffixPath += ",";
m_strAffixPath += str;
}
else
{
m_strAffixPath += str;
}
}
}
}
CDialog::OnOK();
}
void CMailDlg::OnBrowse()
{
// TODO: Add your control notification handler code here
static char BASED_CODE szFilter[] = "All Files (*.*)|*.*||";
CString strDefName;
char szPath[MAX_PATH];
sprintf(szPath,"%s",theApp.GetWorkDirectory());
CFileDialog FileDlg(TRUE,"*.*",NULL,
OFN_FILEMUSTEXIST|OFN_NONETWORKBUTTON|
OFN_PATHMUSTEXIST,szFilter);
FileDlg.m_ofn.lpstrInitialDir = szPath;
if( FileDlg.DoModal() != IDOK )
return;
// To get the selected file's path and name
CString strFileName;
strFileName = FileDlg.GetPathName();
if(strFileName.IsEmpty())
{
return;
}
int index = m_cmbAffix.GetCount();
m_cmbAffix.AddRow(index, strFileName);
m_cmbAffix.SetCheck(index, TRUE);
}
void CMailDlg::OnDelete()
{
for(int i = m_cmbAffix.GetCount() - 1; i >=0 ; i--)
{
if( m_cmbAffix.GetCheck(i) == 1 )
{
m_cmbAffix.DeleteRow(i);
}
}
m_cmbAffix.Invalidate();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -