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

📄 adduser.cpp

📁 vc 实现家庭通讯录
💻 CPP
字号:
// AddUser.cpp : implementation file
//

#include "stdafx.h"
#include "通信录.h"
#include "AddUser.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAddUser dialog


CAddUser::CAddUser(CWnd* pParent /*=NULL*/)
	: CDialog(CAddUser::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAddUser)
	m_BIRTHDAY = _T("");
	m_CALL = _T("");
	m_EAMIL = _T("");
	m_HOMEADDRESS = _T("");
	m_HOMEPHONE = _T("");
	m_MOBILEPHONE = _T("");
	m_NAME = _T("");
	m_QQNUMBER = _T("");
	m_WORKINGADDRESS = _T("");
	m_WORKINGTELPHONE = _T("");
	m_BACK = _T("");
	list=NULL;
	commonFind="";
	for(int i=0;i<100;i++)
		iResult[i]=-1;
	//}}AFX_DATA_INIT
}


void CAddUser::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddUser)
	DDX_Control(pDX, IDOK, m_Ok);
	DDX_Control(pDX, IDCANCEL, m_Cancel);
	DDX_Text(pDX, IDC_BIRTHDAY, m_BIRTHDAY);
	DDV_MaxChars(pDX, m_BIRTHDAY, 10);
	DDX_Text(pDX, IDC_CALL, m_CALL);
	DDX_Text(pDX, IDC_EMAIL, m_EAMIL);
	DDX_Text(pDX, IDC_HOMEADDRESS, m_HOMEADDRESS);
	DDX_Text(pDX, IDC_HOMEPHONE, m_HOMEPHONE);
	DDX_Text(pDX, IDC_MOBILEPHONE, m_MOBILEPHONE);
	DDX_Text(pDX, IDC_NAME, m_NAME);
	DDX_Text(pDX, IDC_QQNUMBER, m_QQNUMBER);
	DDX_Text(pDX, IDC_WORKINGADDRESS, m_WORKINGADDRESS);
	DDX_Text(pDX, IDC_WORKTELEPHONE, m_WORKINGTELPHONE);
	DDX_Text(pDX, IDC_BACK, m_BACK);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAddUser, CDialog)
	//{{AFX_MSG_MAP(CAddUser)
	ON_BN_CLICKED(IDC_FIND, OnFind)
	ON_BN_CLICKED(IDC_PREUSER, OnPreuser)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAddUser message handlers

BOOL CAddUser::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_Ok.SetIcon(IDI_OK);
	m_Cancel.SetIcon(IDI_CANCEL);
	CString sum;
	switch(operate){
	case ADD:
		(CButton*)CWnd::GetDlgItem(IDC_FIND)->ShowWindow(SW_HIDE);
		(CButton*)CWnd::GetDlgItem(IDC_PREUSER)->ShowWindow(SW_HIDE);
		break;
	case MODI:
		(CButton*)CWnd::GetDlgItem(IDC_FIND)->ShowWindow(SW_HIDE);
		(CButton*)CWnd::GetDlgItem(IDC_PREUSER)->ShowWindow(SW_HIDE);
		sum.Format("修改[%s]的通信录",m_NAME),
		CWnd::SetWindowText(sum);
		CWnd::SetDlgItemText(IDOK,"确认修改");	
		break;
	case LOOK:
		(CButton*)CWnd::GetDlgItem(IDC_FIND)->ShowWindow(SW_HIDE);
		(CButton*)CWnd::GetDlgItem(IDC_PREUSER)->ShowWindow(SW_HIDE);
		(CButton*)CWnd::GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE);
		sum.Format("查看朋友[%s]的通信录",m_NAME),
		CWnd::SetWindowText(sum);		
		CWnd::SetDlgItemText(IDOK,"退出");				
		break;
	case FIND:		
		sum.Format("共找到%d个朋友",iSite);
		CWnd::SetWindowText(sum);
		CWnd::SetDlgItemText(IDOK,"退出");		
		(CButton*)CWnd::GetDlgItem(IDCANCEL)->ShowWindow(SW_HIDE);
		if(iResult[0]==-1||iResult[1]==-1)
			((CButton*)CWnd::GetDlgItem(IDC_FIND))->EnableWindow(FALSE);
		((CButton*)CWnd::GetDlgItem(IDC_PREUSER))->EnableWindow(FALSE);
		break;
	}
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CAddUser::FindCount(CListCtrl *tempList,int iType,CString tempFind)
{
	list=tempList;
	commonFind=tempFind;
	iSite=0;
	switch(iType){
	case FINDNAME:
		FindName();
		break;
	case FINDCALL:
		FindCall();
		break;
	case FINDADDR:
		FindAddress();
		break;
	case FINDBIRT:
		FindBirthday();
		break;
	}
	i=0;	
	FindNext();
}
void CAddUser::FindName()
{
	int iLoop=list->GetItemCount()-1;
	CString name;
	for(;iLoop>=0;iLoop--){
		name=list->GetItemText(iLoop,0);
		if(name.Find(commonFind)!=-1)
			iResult[iSite++]=iLoop;
	}
}

void CAddUser::FindCall()
{
	int iLoop=list->GetItemCount()-1;
	CString name;
	for(;iLoop>=0;iLoop--){
		name=list->GetItemText(iLoop,2);
		if(name.Find(commonFind)!=-1)
			iResult[iSite++]=iLoop;
		else{
			name=list->GetItemText(iLoop,3);
			if(name.Find(commonFind)!=-1)
				iResult[iSite++]=iLoop;
			else {
				name=list->GetItemText(iLoop,4);
				if(name.Find(commonFind)!=-1)
					iResult[iSite++]=iLoop;
				else{
					name=list->GetItemText(iLoop,5);
					if(name.Find(commonFind)!=-1)
						iResult[iSite++]=iLoop;
				}
			}
		}
	}
}

void CAddUser::FindAddress()
{	
	int iLoop=list->GetItemCount()-1;
	CString address;
	for(;iLoop>=0;iLoop--){
		address=list->GetItemText(iLoop,8);
		if(address.Find(commonFind)!=-1)
			iResult[iSite++]=iLoop;
		else{
			address=list->GetItemText(iLoop,9);
			if(address.Find(commonFind)!=-1)
				iResult[iSite++]=iLoop;
		}
	}
}

void CAddUser::FindBirthday()
{	
	int iLoop=list->GetItemCount()-1;
	CString birthday;
	for(;iLoop>=0;iLoop--){
		birthday=list->GetItemText(iLoop,1);
		if(birthday.Find(commonFind)!=-1)
			iResult[iSite++]=iLoop;
	}
}

void CAddUser::FindNext()
{	
	if(iResult[i]!=-1){		
		m_NAME=list->GetItemText(iResult[i],0);
		m_BIRTHDAY=list->GetItemText(iResult[i],1);	
		m_HOMEPHONE=list->GetItemText(iResult[i],2);		
		m_WORKINGTELPHONE=list->GetItemText(iResult[i],3);		
		m_MOBILEPHONE=list->GetItemText(iResult[i],4);		
		m_CALL=list->GetItemText(iResult[i],5);		
		m_QQNUMBER=list->GetItemText(iResult[i],6);
		m_EAMIL=list->GetItemText(iResult[i],7);
		m_HOMEADDRESS=list->GetItemText(iResult[i],8);
		m_WORKINGADDRESS=list->GetItemText(iResult[i],9);				
		m_BACK=list->GetItemText(iResult[i],10);	
		if(i>0)UpdateData(FALSE);
	}
	else m_BACK="对不起你没有此朋友。是不是输入有误?";	
	if(iResult[i+1]==-1&&i>=1)
		((CButton*)CWnd::GetDlgItem(IDC_FIND))->EnableWindow(FALSE);
}

void CAddUser::OnFind() 
{
	((CButton*)CWnd::GetDlgItem(IDC_PREUSER))->EnableWindow(TRUE);
	i++;
	FindNext();	
}

void CAddUser::OnPreuser() 
{	
	i--;	
	((CButton*)CWnd::GetDlgItem(IDC_FIND))->EnableWindow(TRUE);	
	FindPre();
}

void CAddUser::FindPre()
{		
	m_NAME=list->GetItemText(iResult[i],0);
	m_BIRTHDAY=list->GetItemText(iResult[i],1);	
	m_HOMEPHONE=list->GetItemText(iResult[i],2);
	m_WORKINGTELPHONE=list->GetItemText(iResult[i],3);		
	m_MOBILEPHONE=list->GetItemText(iResult[i],4);		
	m_CALL=list->GetItemText(iResult[i],5);		
	m_QQNUMBER=list->GetItemText(iResult[i],6);
	m_EAMIL=list->GetItemText(iResult[i],7);
	m_HOMEADDRESS=list->GetItemText(iResult[i],8);
	m_WORKINGADDRESS=list->GetItemText(iResult[i],9);			
	m_BACK=list->GetItemText(iResult[i],10);		
	UpdateData(FALSE);	
	if(i==0)
		((CButton*)CWnd::GetDlgItem(IDC_PREUSER))->EnableWindow(FALSE);
}

⌨️ 快捷键说明

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