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;
}