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

📄 maildlg.cpp

📁 我上载了那么多怎么都说已经有上载的啦
💻 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 + -