📄 phonebookdlg.cpp
字号:
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CPhonebookDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CPhonebookDlg::OnExit()
{
// TODO: Add your control notification handler code here
//退出程序
save();//保存到文件
PostMessage(WM_QUIT);
}
void CPhonebookDlg::OnExchange()
{
// TODO: Add your control notification handler code here
//保存修改后的电话记录
UpdateData();
type=4;//修改
if(m_selectname=="")//未选中任何人 LB_ERR==m_namelist.FindString(-1,m_selectname)
{
MessageBox("请选择要修改信息的联系人","警告!");
//取消该修改的相关信息的显示
m_editname.SetWindowText("");
m_editadd.SetWindowText("");
m_editemail.SetWindowText("");
m_editnumber.SetWindowText("");
m_editqq.SetWindowText("");
m_editinformation.SetWindowText("");
type=0;
UpdateData(TRUE);
return;
}
else
{
search(m_selectname);//修改联系人信息
m_namelist.SetCurSel(m_namelist.FindString(-1,m_showname));//选中被修改的联系人
m_selectname=m_showname;
type=0;
search(m_showname);//显示联系人信息
UpdateData(TRUE);
//保存到文件
}
}
void CPhonebookDlg::OnSearch()
{
// TODO: Add your control notification handler code here
//查找联系人
Csearch searchdlg;
if(IDOK==searchdlg.DoModal())
{//查找联系人,找到就显示,否则MessageBox()
CString strsearch=searchdlg.m_search;
type=2;
if(strsearch=="")
{
MessageBox("联系人姓名不能为空","提示");
return;
}
search(strsearch);
}
}
void CPhonebookDlg::OnCreate()
{
// TODO: Add your control notification handler code here
//增加联系人记录
Cincreat increat;
if(IDOK==increat.DoModal())
{
//保存增加的联系人信息
UpdateData();
type=1;
if(increat.m_name=="")
{
MessageBox("联系人姓名不能为空","提示");
return;
}
search(increat.m_name);
if(exist)
{//已存在该联系人,则询问是否继续保存
Csure sure;
if(sure.DoModal()==IDOK)
{//继续保存
m_namelist.AddString(m_showname);//在列表中显示新增加的联系人
m_showadd=increat.m_add;
m_showemail=increat.m_email;
m_showinformation=increat.m_information;
m_showname=increat.m_name;
m_shownumber=increat.m_number;
m_showqq=increat.m_qq;
m_called=increat.m_called;
m_namelist.SetCurSel(m_namelist.FindString(-1,m_showname));
m_selectname=m_showname;//////
newuser* m_usertemp=new newuser(m_showname,m_shownumber,m_showemail,m_showqq,
m_showinformation,m_showadd,m_called);
m_userarr.Add(m_usertemp);
type=0;
search(m_showname);
Invalidate();
}
}
else
{//不存在则保存联系人
m_namelist.AddString(increat.m_name);//在列表中显示新增加的联系人
m_showadd=increat.m_add;
m_showemail=increat.m_email;
m_showinformation=increat.m_information;
m_showname=increat.m_name;
m_shownumber=increat.m_number;
m_showqq=increat.m_qq;
m_called=increat.m_called;
m_namelist.SetCurSel(m_namelist.FindString(-1,m_showname));
m_selectname=m_showname;//////
newuser* m_usertemp=new newuser(m_showname,m_shownumber,m_showemail,m_showqq,
m_showinformation,m_showadd,m_called);
m_userarr.Add(m_usertemp);
type=0;
search(m_showname);
Invalidate();
}
}
}
void CPhonebookDlg::OnDelete()
{
// TODO: Add your control notification handler code here
type=3;
if(m_selectname=="")
{
MessageBox("没有选择要删除的联系人!","提示");
type=0;
return;
}
m_namelist.DeleteString(m_namelist.GetCurSel());//在列表中删除选中的联系人
//取消该联系人相关信息的显示
m_editname.SetWindowText("");
m_editadd.SetWindowText("");
m_editemail.SetWindowText("");
m_editnumber.SetWindowText("");
m_editqq.SetWindowText("");
m_editinformation.SetWindowText("");
m_calledctrl.SetWindowText("");
search(m_selectname);
m_selectname="";
//从文件中删除该联系人信息
UpdateData();
}
void CPhonebookDlg::OnSelchangeNamelist()
{
// TODO: Add your control notification handler code here
//显示选中的联系人的相关信息
UpdateData();
search(m_selectname);
}
void CPhonebookDlg::save()
{
//保存到文件
CFile pfile;
pfile.Open("pb.new",CFile::modeWrite |CFile::modeCreate);
CArchive phonebook(&pfile,CArchive::store);
phonebook<<m_sec;//保存密码
int nuser=m_userarr.GetSize();
phonebook<<nuser;//保存人数
for(int i=0;i<nuser;i++)
{
phonebook<<m_userarr.GetAt(i);//保存数据
}
phonebook.Flush();
phonebook.Close();
pfile.Close();
}
void CPhonebookDlg::search(CString strsearch)
{/////
exist=FALSE;
int nuser;
nuser=m_userarr.GetSize();
newuser* puser;
int i=0;
for(;i<nuser;i++)
{
puser=(newuser*)m_userarr.GetAt(i);
if(puser->m_showname==strsearch)//查找选择的联系人
{
if(type!=3&&type!=4)//不是删除和修改操作
{
exist=TRUE;//存在此人
m_showadd=puser->m_showadd;//读取此人信息
m_showemail=puser->m_showemail;
m_showinformation=puser->m_showinformation;
m_showname=puser->m_showname;
m_shownumber=puser->m_shownumber;
m_showqq=puser->m_showqq;
m_called=puser->m_called;
//显示信息
m_editname.SetWindowText(m_showname);
m_editadd.SetWindowText(m_showadd);
m_editemail.SetWindowText(m_showemail);
m_editnumber.SetWindowText(m_shownumber);
m_editqq.SetWindowText(m_showqq);
m_editinformation.SetWindowText(m_showinformation);
m_calledctrl.SetWindowText(m_called);
//UpdateData();//更新控件数据
break;
}
else
{
break;
}
}
else
{
exist=FALSE;//无此人
}
}
switch(type)
{
case 1:////增加联系人记录
type=0;
break;
case 2://查找联系人
if(exist)
{
m_namelist.SetCurSel(i);
Invalidate();
}
break;
case 3://删除
newuser* pusertemp;
pusertemp=(newuser*)m_userarr.GetAt(i);
delete pusertemp;
m_userarr.RemoveAt(i);
type=0;
break;
case 4://修改
if (m_showname=="") {
MessageBox("联系人姓名不能为空");
return;
}
m_namelist.DeleteString(m_namelist.GetCurSel());//在列表中删除选中的联系人
//更改联系人信息
puser->m_showadd=m_showadd;
puser->m_showemail=m_showemail;
puser->m_showinformation=m_showinformation;
puser->m_showname=m_showname;
puser->m_shownumber=m_shownumber;
puser->m_showqq=m_showqq;
puser->m_called=m_called;
m_namelist.AddString(puser->m_showname);
type=0;
break;
default:
break;
}
if(type==2)
{
type=0;
if(exist==FALSE)//未找到联系人
{
MessageBox("您查找的联系人不存在","查找");
}
}
}
void CPhonebookDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
save();//保存数据
CDialog::OnClose();
}
void CPhonebookDlg::OnBnClickedSecchange()
{
// 修改密码
CSecchange secdlg;
if (secdlg.DoModal()==IDOK) {
if (m_sec==secdlg.m_osec) {//旧密码正确
if (secdlg.m_nsec==secdlg.m_nsec2) {//新密码确认
m_sec=secdlg.m_nsec;
MessageBox("密码修改成功\n请记好新密码!");
}
else MessageBox("新密码两次输入不一致!");
}
else MessageBox("旧密码输入错误!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -