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

📄 finddlg.cpp

📁 一个非常简单地址簿程序
💻 CPP
字号:
// FindDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MyAL.h"
#include "FindDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFindDlg dialog


CFindDlg::CFindDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFindDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFindDlg)
	m_nCondition = 0;
	m_oleDate = COleDateTime::GetCurrentTime();
	m_nField = 0;
	m_nLocate = 0;
	m_nLogic = -1;
	m_strText = _T("");
	//}}AFX_DATA_INIT
	m_pView = NULL;
}
CFindDlg::CFindDlg(CMyALView* pView)
{
	m_nCondition = 0;
	m_oleDate = COleDateTime::GetCurrentTime();
	m_nField = 0;
	m_nLocate = 0;
	m_nLogic = -1;
	m_strText = _T("");

	m_pView  = pView;
}

void CFindDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFindDlg)
	DDX_CBIndex(pDX, IDC_CONDITION, m_nCondition);
	DDX_DateTimeCtrl(pDX, IDC_DATE, m_oleDate);
	DDX_CBIndex(pDX, IDC_FIELD, m_nField);
	DDX_CBIndex(pDX, IDC_LOCATE, m_nLocate);
	DDX_CBIndex(pDX, IDC_LOGIC, m_nLogic);
	DDX_Text(pDX, IDC_TEXT, m_strText);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFindDlg, CDialog)
	//{{AFX_MSG_MAP(CFindDlg)
	ON_CBN_SELENDOK(IDC_CONDITION, OnSelendokCondition)
	ON_CBN_SELENDOK(IDC_LOCATE, OnSelendokLocate)
	ON_CBN_SELENDOK(IDC_FIELD, OnSelendokField)
	ON_BN_CLICKED(IDC_START, OnStart)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFindDlg message handlers
BOOL CFindDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CComboBox* pLogic = (CComboBox*)GetDlgItem(IDC_LOGIC);
	CComboBox* pDate = (CComboBox*)GetDlgItem(IDC_DATE);
	pLogic->ShowWindow(SW_HIDE);
	pDate->ShowWindow(SW_HIDE);
	
	OnSelendokLocate();
	OnSelendokField();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CFindDlg::OnOK() 
{	
//	CDialog::OnOK();
}

void CFindDlg::OnCancel() 
{
//	CDialog::OnCancel();
	DestroyWindow();
}

void CFindDlg::PostNcDestroy() 
{	
	CDialog::PostNcDestroy();
	delete this;
}

void CFindDlg::OnSelendokLocate() 
{
	UpdateData(TRUE);
	switch(m_nLocate)
	{
	case 0:
		SelBaseInfo();
		break;
	case 1:
		SetFamily();
		break;
	case 2:
		SetUnit();
		break;
	case 3:
		SetContact();
		break;
	case 4:
		SetOther();
		break;
	case 5:
		SetActive();
		break;
	case 6:
		SetRemark();
		break;
	}
	OnSelendokField();
}

void CFindDlg::OnSelendokField() 
{
	CComboBox* pCondition = (CComboBox*)GetDlgItem(IDC_CONDITION);
	CComboBox* pLogic = (CComboBox*)GetDlgItem(IDC_LOGIC);
	CComboBox* pDate = (CComboBox*)GetDlgItem(IDC_DATE);
	CComboBox* pText = (CComboBox*)GetDlgItem(IDC_TEXT);
	pDate->ShowWindow(SW_HIDE);
	pLogic->ShowWindow(SW_HIDE);
	pText->ShowWindow(SW_SHOW);

	pCondition->ResetContent();

	UpdateData(TRUE);
	switch(m_nLocate)
	{
	case 0://基本资料
		switch(m_nField)
		{
		case 0:
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("小于"));
			pCondition->AddString(_T("大于"));
			break;
		case 1:
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("含有"));
			break;
		case 2:
			pCondition->AddString(_T("等于"));
			
			pDate->ShowWindow(SW_HIDE);
			pLogic->ShowWindow(SW_SHOW);
			pText->ShowWindow(SW_HIDE);
			
			pLogic->ResetContent();
			pLogic->AddString(_T(""));
			pLogic->AddString("男");
			pLogic->AddString("女");
			pLogic->SetCurSel(0);
			break;
		case 3:
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("小于"));
			pCondition->AddString(_T("大于"));
			
			pDate->ShowWindow(SW_SHOW);
			pLogic->ShowWindow(SW_HIDE);
			pText->ShowWindow(SW_HIDE);
			break;
		case 4:
			pCondition->AddString(_T("等于"));
					
			pDate->ShowWindow(SW_HIDE);
			pLogic->ShowWindow(SW_SHOW);
			pText->ShowWindow(SW_HIDE);
			
			pLogic->ResetContent();
			pLogic->AddString("阳历");
			pLogic->AddString("农历");
			pLogic->SetCurSel(0);
			break;
		case 5:
			pCondition->AddString(_T("等于"));

			pDate->ShowWindow(SW_HIDE);
			pLogic->ShowWindow(SW_SHOW);
			pText->ShowWindow(SW_HIDE);

			pLogic->ResetContent();
			pLogic->AddString("是");
			pLogic->AddString("否");
			pLogic->SetCurSel(0);
			break;
		case 6:
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("含有"));
			break;
		case 7:
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("含有"));
			break;
		case 8:
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("含有"));
			break;
		}
		pCondition->SetCurSel(0);
		break;
		case 1://家庭
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("含有"));
			break;
		case 2://单位
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("含有"));
			break;
		case 3://联系方法
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("含有"));
			break;
		case 4://其他
			pCondition->AddString(_T("等于"));
			pCondition->AddString(_T("含有"));
			break;
		case 5://活动
			switch(m_nField)
			{
			case 0:
				pCondition->AddString(_T("等于"));
				pCondition->AddString(_T("含有"));
				break;
			case 1:
				pCondition->AddString(_T("等于"));
				pCondition->AddString(_T("含有"));
				break;
			case 2:
				pCondition->AddString(_T("等于"));
				pCondition->AddString(_T("小于"));
				pCondition->AddString(_T("大于"));
				
				pDate->ShowWindow(SW_SHOW);
				pLogic->ShowWindow(SW_HIDE);
				pText->ShowWindow(SW_HIDE);
				break;
			case 3:
				pCondition->AddString(_T("等于"));
				pDate->ShowWindow(SW_HIDE);
				pLogic->ShowWindow(SW_SHOW);
				pText->ShowWindow(SW_HIDE);
				
				pLogic->ResetContent();
				pLogic->AddString("是");
				pLogic->AddString("否");
				pLogic->SetCurSel(0);
				break;
			}
			break;
			case 6://备注
				pCondition->AddString(_T("等于"));
				pCondition->AddString(_T("含有"));
			break;
	}
	pCondition->SetCurSel(0);
}

void CFindDlg::OnSelendokCondition() 
{
}

void CFindDlg::SelBaseInfo()
{
	CComboBox* pField = (CComboBox*)GetDlgItem(IDC_FIELD);
	
	pField->ResetContent();
	
	pField->AddString(_T("ID"));
	pField->AddString(_T("姓名"));
	pField->AddString(_T("性别"));
	pField->AddString(_T("生日"));
	pField->AddString(_T("历制"));
	pField->AddString(_T("提醒"));
	pField->AddString(_T("国家/地区"));
	pField->AddString(_T("省份/自治区"));
	pField->AddString(_T("城市"));
	
	pField->SetCurSel(0);
}

void CFindDlg::SetFamily()
{
	CComboBox* pField = (CComboBox*)GetDlgItem(IDC_FIELD);
	
	pField->ResetContent();

	pField->AddString(_T("邮政编码"));
	pField->AddString(_T("国家/地区"));
	pField->AddString(_T("省份/自治区"));
	pField->AddString(_T("城市"));
	pField->AddString(_T("街道地址"));
	pField->AddString(_T("家庭成员"));
	pField->AddString(_T("电话"));

	pField->SetCurSel(0);
}

void CFindDlg::SetUnit()
{
	CComboBox* pField = (CComboBox*)GetDlgItem(IDC_FIELD);
	
	pField->ResetContent();

	pField->AddString(_T("国家/地区"));
	pField->AddString(_T("省份/自治区"));
	pField->AddString(_T("城市"));
	pField->AddString(_T("单位名称"));
	pField->AddString(_T("部门"));
	pField->AddString(_T("办公室"));
	pField->AddString(_T("职位"));
	pField->AddString(_T("街道地址"));
	pField->AddString(_T("邮政编码"));
	pField->AddString(_T("电话"));
	pField->AddString(_T("传真"));
	pField->AddString(_T("单位主页"));
	pField->AddString(_T("电子邮件"));

	pField->SetCurSel(0);
}

void CFindDlg::SetContact()
{
	CComboBox* pField = (CComboBox*)GetDlgItem(IDC_FIELD);
	
	pField->ResetContent();

	pField->AddString(_T("邮政编码"));
	pField->AddString(_T("国家/地区"));
	pField->AddString(_T("省份/自治区"));
	pField->AddString(_T("城市"));
	pField->AddString(_T("街道地址"));
	pField->AddString(_T("电话"));
	pField->AddString(_T("传真"));
	pField->AddString(_T("手机"));
	pField->AddString(_T("电子邮件"));
	pField->AddString(_T("MSN"));
	pField->AddString(_T("QQ号码"));
	pField->AddString(_T("ICQ号码"));
	
	pField->SetCurSel(0);
}

void CFindDlg::SetOther()
{
	CComboBox* pField = (CComboBox*)GetDlgItem(IDC_FIELD);
	
	pField->ResetContent();
	
	pField->AddString(_T("昵称"));
	pField->AddString(_T("爱好"));
	pField->AddString(_T("特长"));
	pField->AddString(_T("配偶"));
	pField->AddString(_T("个人主页"));
	
	pField->SetCurSel(0);
}

void CFindDlg::SetActive()
{
	CComboBox* pField = (CComboBox*)GetDlgItem(IDC_FIELD);
	
	pField->ResetContent();
	
	pField->AddString(_T("活动内容"));
	pField->AddString(_T("活动类型"));
	pField->AddString(_T("日期"));
	pField->AddString(_T("提示"));
	
	pField->SetCurSel(0);
}

void CFindDlg::SetRemark()
{
	CComboBox* pField = (CComboBox*)GetDlgItem(IDC_FIELD);
	
	pField->ResetContent();
	
	pField->AddString(_T("备注内容"));
	
	pField->SetCurSel(0);
}

void CFindDlg::OnStart() 
{
	UpdateData(TRUE);
	m_pView->Search();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -