mfc通讯录管理系统修改信息功能的代码怎么写(要用到vector)
时间: 2024-02-22 20:56:14 浏览: 29
假设我们已经使用 MFC 框架开发了一个通讯录管理系统,并且使用 CContact 类来表示联系人信息,包括姓名、电话号码、邮箱地址等字段,定义如下:
```cpp
class CContact {
public:
CString name;
CString phone;
CString email;
};
```
我们可以使用 CArray 来保存联系人信息,定义一个全局变量 contacts:
```cpp
CArray<CContact, CContact&> contacts;
```
接下来,我们可以实现修改联系人信息的功能,具体代码如下:
```cpp
void CAddressBookDlg::OnBtnModify()
{
// 获取需要修改的联系人姓名
CString name;
GetDlgItemText(IDC_EDIT_NAME, name);
// 遍历所有联系人,查找需要修改的联系人
bool found = false;
for (int i = 0; i < contacts.GetSize(); i++) {
if (contacts[i].name == name) {
found = true;
// 显示当前联系人信息
SetDlgItemText(IDC_EDIT_PHONE, contacts[i].phone);
SetDlgItemText(IDC_EDIT_EMAIL, contacts[i].email);
// 弹出对话框,让用户输入新的电话号码和邮箱地址
CModifyDlg dlg;
dlg.m_phone = contacts[i].phone;
dlg.m_email = contacts[i].email;
if (dlg.DoModal() == IDOK) {
// 修改联系人信息
contacts[i].phone = dlg.m_phone;
contacts[i].email = dlg.m_email;
// 提示修改成功
MessageBox(_T("Contact information has been modified successfully!"));
// 清空输入框
SetDlgItemText(IDC_EDIT_NAME, _T(""));
SetDlgItemText(IDC_EDIT_PHONE, _T(""));
SetDlgItemText(IDC_EDIT_EMAIL, _T(""));
}
break;
}
}
// 如果没找到联系人,提示不存在
if (!found) {
MessageBox(_T("Contact not found!"));
}
}
```
该函数会提示用户输入需要修改的联系人姓名,然后遍历所有联系人,查找需要修改的联系人。如果找到了联系人,就显示当前联系人信息,并弹出一个对话框,让用户输入新的电话号码和邮箱地址。如果用户点击了“确定”按钮,就修改联系人信息,并提示修改成功。如果没找到联系人,就提示联系人不存在。
注意,这里假设每个联系人的姓名都是唯一的,如果有重复的姓名,修改联系人信息的时候可能会修改到多个联系人的信息。如果需要支持重复姓名,可以使用一个 CArray 来保存所有同名的联系人,然后让用户选择需要修改的联系人。