www.pudn.com > FindMail.zip > findmailDlg.cpp


// findmailDlg.cpp : 实现文件 
// 
 
#include "stdafx.h" 
#include "findmail.h" 
#include "findmailDlg.h" 
#include "tcp.h" 
#include "findmailthread.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#endif 
 
 
// CfindmailDlg 对话框 
 
 
 
CfindmailDlg::CfindmailDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CfindmailDlg::IDD, pParent) 
	, m_stat(_T("")) 
	, m_domain(_T("")) 
	, m_max_thread_count(100) 
	, m_max_thread_num(99) 
	, m_min_thread_num(0) 
	, m_stat_file(_T("")) 
	, m_dict_file(_T("")) 
	, m_dial_name(_T("")) 
{ 
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); 
} 
 
void CfindmailDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	DDX_Text(pDX, IDE_STAT, m_stat); 
	DDX_CBString(pDX, IDC_DOMAIN, m_domain); 
	DDX_Text(pDX, IDE_THREAD_COUNT, m_max_thread_count); 
	DDV_MinMaxInt(pDX, m_max_thread_count, 1, 1024000); 
	DDX_Text(pDX, IDE_MAX_THREAD_NUM, m_max_thread_num); 
	DDX_Text(pDX, IDE_MIN_THREAD_NUM, m_min_thread_num); 
	DDX_Text(pDX, IDE_STAT_FILE, m_stat_file); 
	DDX_Text(pDX, IDE_DICT_FILE, m_dict_file); 
	DDX_Text(pDX, IDE_DIAL_NAME, m_dial_name); 
} 
 
BEGIN_MESSAGE_MAP(CfindmailDlg, CDialog) 
	ON_WM_PAINT() 
	ON_WM_QUERYDRAGICON() 
	//}}AFX_MSG_MAP 
	ON_BN_CLICKED(ID_START, OnBnClickedStart) 
	ON_WM_CLOSE() 
	ON_BN_CLICKED(ID_BROWSE_STAT_FILE, OnBnClickedBrowseStatFile) 
	ON_BN_CLICKED(ID_BROWSE_DICT_FILE, OnBnClickedBrowseDictFile) 
	ON_BN_CLICKED(IDC_NO_STAT, OnBnClickedNoStat) 
	ON_BN_CLICKED(IDC_NOT_SHOW_NONEXIST, OnBnClickedNotShowNonexist) 
	ON_EN_CHANGE(IDE_DIAL_NAME, OnEnChangeDialName) 
END_MESSAGE_MAP() 
 
 
// CfindmailDlg 消息处理程序 
extern HWND g_hWndNotify; 
 
BOOL CfindmailDlg::OnInitDialog() 
{ 
	CDialog::OnInitDialog(); 
 
	// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动 
	//  执行此操作 
	SetIcon(m_hIcon, TRUE);			// 设置大图标 
	SetIcon(m_hIcon, FALSE);		// 设置小图标 
 
	g_hWndNotify =m_hWnd;	// TODO:在此添加额外的初始化代码 
	SetDlgItemText(IDC_DNS, m_dns_client.m_dns_ip); 
	for(int i =0; i(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 CfindmailDlg::OnQueryDragIcon() 
{ 
	return static_cast(m_hIcon); 
} 
 
void CfindmailDlg::OnBnClickedStart() 
{ 
	CString str; 
	GetDlgItemText(ID_START, str); 
	time_t t; 
	struct tm *ptm; 
	time(&t); 
	ptm =localtime(&t); 
	char ttm[30]; 
	wsprintf(ttm, "%04d/%02d/%02d %02d:%02d:%02d", ptm->tm_year+1900, ptm->tm_mon+1, ptm->tm_mday, ptm->tm_hour, 
		ptm->tm_min, ptm->tm_sec); 
	if(str =="启动") 
	{ 
		UpdateData(); 
		SetDlgItemText(IDC_START_TIME, ttm); 
		m_dns_client.GetMxServers((char *)(LPCTSTR)m_domain); 
		SendDlgItemMessage(IDC_MX_SERVER, CB_RESETCONTENT, 0, 0L); 
		for(int i =0; idwSize = sizeof(RASCONN); 
	lpcb = sizeof(RASCONN); 
  
	int nRet = RasEnumConnections(lpRasConn, &lpcb, &lpcConnections); 
	if (nRet != 0) 
	    return -1; 
	else 
	{ 
		for (int i = 0; i < (int)lpcConnections; i++) 
	    { 
			SendDlgItemMessage(IDE_DIAL_NAME, CB_ADDSTRING, 0, (LPARAM)lpRasConn->szEntryName); 
			lpRasConn++; 
		} 
	} 
	GlobalFree(lpRasConn); 
 
	return 0; 
}