用mfc写一个简单通讯录
时间: 2023-10-16 14:08:26 浏览: 153
用MFC编写的简单通讯录
3星 · 编辑精心推荐
好的,下面是一个简单的通讯录程序,使用 MFC 编写。
首先,你需要创建一个 MFC 对话框项目。接下来,我们需要设计 UI 界面,包括添加、删除联系人和显示联系人列表。
在对话框中,添加以下控件:
- 一个“添加联系人”按钮(ID 为 ID_ADD_BUTTON)
- 一个“删除联系人”按钮(ID 为 ID_DELETE_BUTTON)
- 一个列表框控件(ID 为 IDC_CONTACT_LIST)
接下来,在类向导中添加一个新类,作为联系人项的数据结构:
```cpp
class CContact
{
public:
CString m_strName;
CString m_strPhone;
};
```
在对话框类的头文件中,添加以下变量和函数声明:
```cpp
class CMyDlg : public CDialogEx
{
// ...
private:
CArray<CContact, CContact&> m_arrContacts; // 存储联系人列表
void UpdateContactList(); // 更新联系人列表框
void AddContact(); // 添加联系人
void DeleteContact(); // 删除选中的联系人
};
```
在对话框类的实现文件中,添加以下函数实现:
```cpp
void CMyDlg::UpdateContactList()
{
// 先清空列表框内容
m_lstContacts.ResetContent();
// 遍历联系人列表,添加每个联系人的名称到列表框中
for (int i = 0; i < m_arrContacts.GetSize(); i++) {
m_lstContacts.AddString(m_arrContacts[i].m_strName);
}
}
void CMyDlg::AddContact()
{
// 创建一个新的联系人项
CContact contact;
contact.m_strName = _T("New Contact");
contact.m_strPhone = _T("");
// 将新的联系人项添加到列表中
m_arrContacts.Add(contact);
// 更新列表框内容
UpdateContactList();
}
void CMyDlg::DeleteContact()
{
// 获取当前选中的联系人项的索引
int nIndex = m_lstContacts.GetCurSel();
// 如果没有选中任何项,则直接返回
if (nIndex == LB_ERR) {
return;
}
// 从联系人列表中删除该项
m_arrContacts.RemoveAt(nIndex);
// 更新列表框内容
UpdateContactList();
}
```
最后,在对话框类的消息映射中添加以下代码:
```cpp
BEGIN_MESSAGE_MAP(CMyDlg, CDialogEx)
// ...
ON_BN_CLICKED(ID_ADD_BUTTON, &CMyDlg::OnBnClickedAddButton)
ON_BN_CLICKED(ID_DELETE_BUTTON, &CMyDlg::OnBnClickedDeleteButton)
END_MESSAGE_MAP()
void CMyDlg::OnBnClickedAddButton()
{
AddContact();
}
void CMyDlg::OnBnClickedDeleteButton()
{
DeleteContact();
}
```
现在,你可以编译并运行程序了。点击“添加联系人”按钮可以添加一个新的联系人项,点击“删除联系人”按钮可以删除选择的联系人项。列表框中会显示所有联系人的名称。
这只是一个简单的示例程序,你可以根据自己的需求扩展它。
阅读全文