用C++语言写一个mfc对话框形式的通讯录系统
时间: 2023-12-27 18:09:37 浏览: 90
以下是一个简单的MFC对话框通讯录系统的C++代码示例:
首先,创建一个MFC对话框应用程序,然后在资源视图中添加一个对话框资源以及需要的控件(如编辑框,列表框,按钮等)。
打开对话框的头文件(例如“MyDlg.h”),添加以下代码:
```c++
#include <vector>
#include <string>
struct Contact {
std::string name;
std::string phone;
};
class CMyDlg : public CDialog {
public:
CMyDlg(CWnd* pParent = nullptr); // 构造函数
enum { IDD = IDD_MY_DIALOG }; // 对话框标识符
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
private:
CEdit m_editName;
CEdit m_editPhone;
CListBox m_listContacts;
std::vector<Contact> m_contacts; // 储存联系人信息
public:
afx_msg void OnBnClickedBtnAdd(); // 添加联系人按钮的点击事件处理函数
afx_msg void OnBnClickedBtnDelete(); // 删除联系人按钮的点击事件处理函数
};
```
然后,在“MyDlg.cpp”文件中,添加以下代码:
```c++
#include "MyDlg.h"
#include "afxdialogex.h"
CMyDlg::CMyDlg(CWnd* pParent /*=nullptr*/)
: CDialog(IDD_MY_DIALOG, pParent)
{
}
void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_EDIT_NAME, m_editName);
DDX_Control(pDX, IDC_EDIT_PHONE, m_editPhone);
DDX_Control(pDX, IDC_LIST_CONTACTS, m_listContacts);
}
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
ON_BN_CLICKED(IDC_BTN_ADD, &CMyDlg::OnBnClickedBtnAdd)
ON_BN_CLICKED(IDC_BTN_DELETE, &CMyDlg::OnBnClickedBtnDelete)
END_MESSAGE_MAP()
void CMyDlg::OnBnClickedBtnAdd()
{
CString name, phone;
m_editName.GetWindowText(name);
m_editPhone.GetWindowText(phone);
if (!name.IsEmpty() && !phone.IsEmpty()) {
Contact contact;
contact.name = CT2A(name);
contact.phone = CT2A(phone);
m_contacts.push_back(contact);
m_listContacts.AddString(name);
}
}
void CMyDlg::OnBnClickedBtnDelete()
{
int index = m_listContacts.GetCurSel();
if (index != LB_ERR) {
m_listContacts.DeleteString(index);
m_contacts.erase(m_contacts.begin() + index);
}
}
```
在这个示例中,我们创建了一个Contact结构体,用于储存每个联系人的姓名和电话号码。在对话框中,我们添加了两个编辑框(用于输入姓名和电话号码),一个列表框(用于显示联系人列表)以及两个按钮(用于添加和删除联系人)。
在添加联系人按钮的点击事件处理函数中,我们获取编辑框中输入的姓名和电话号码,如果两个值都不为空,则创建一个新的Contact对象,将其添加到联系人列表中,并将姓名添加到列表框中。
在删除联系人按钮的点击事件处理函数中,我们获取当前选中的联系人在列表框中的索引,如果存在选中的联系人,则从列表框和联系人列表中删除该联系人。
这只是一个简单的示例,您可以根据需要添加更多的功能和控件。
阅读全文