VisualStudio2022 MFC 类向导无法对其中一个对话框添加变量及虚函数等成员解决方法

1.0 清理过程文件

清除Debug和Relaese的过程文件
在这里插入图片描述

2.0 删除.vs

删除visualstudio生成的过程文件
在这里插入图片描述
在这里插入图片描述

3.0 重启项目

亲测可行,用于记录bug,忘有所帮助(基本就是下述)

1)关闭VC
2)删除.ncb/.aps/.clw/.opt文件
3)重新打开工程。

好的,下面我将给出详细的步骤和代码,希望能帮到你。 步骤: 1. 打开Visual Studio 2022,选择创建一个新的MFC项目。 2. 在创建新MFC项目的向导中,选择对话框应用程序,并选择使用MFC的共享DLL。 3. 选择一个适当的应用程序名称和位置,然后单击“下一步”。 4. 在下一个对话框中,选择一个适当的对话框样式,然后单击“下一步”。 5. 在下一个对话框中,选择添加一个列表框控件,并设置它的属性,然后单击“完成”。 6. 在对话框视图中,选择列表框控件的ID,并添加一个成员变量。 7. 在的头文件中添加以下头文件: ```c++ #include <vector> // 添加 STL 头文件 ``` 8. 在的头文件中添加以下代码: ```c++ std::vector<CString> m_listData; // 定义一个字符串型的动态数组,用于存储列表框中的数据 ``` 9. 在OnInitDialog函数中添加以下代码,以初始化列表框: ```c++ // 初始化列表框 m_listData.push_back(_T("Item 1")); m_listData.push_back(_T("Item 2")); m_listData.push_back(_T("Item 3")); for (int i = 0; i < m_listData.size(); i++) { m_listBox.AddString(m_listData[i]); } ``` 10. 在的头文件中添加以下响应函数的声明: ```c++ afx_msg void OnAddButtonClicked(); afx_msg void OnEditButtonClicked(); afx_msg void OnDeleteButtonClicked(); ``` 11. 在资源视图中打开对话框的属性,添加三个按钮,并分别设置它们的ID为ID_ADD_BUTTON、ID_EDIT_BUTTON和ID_DELETE_BUTTON。 12. 在的消息映射中添加以下代码: ```c++ ON_BN_CLICKED(ID_ADD_BUTTON, &CYourDialog::OnAddButtonClicked) ON_BN_CLICKED(ID_EDIT_BUTTON, &CYourDialog::OnEditButtonClicked) ON_BN_CLICKED(ID_DELETE_BUTTON, &CYourDialog::OnDeleteButtonClicked) ``` 13. 在的CPP文件中实现响应函数: ```c++ void CYourDialog::OnAddButtonClicked() { // 弹出对话框,获取用户输入的字符串 CString str; if (AfxInputBox(_T("Add Item"), _T("Enter item name:"), str) == IDOK) { // 添加新的字符串到列表框和动态数组中 m_listData.push_back(str); m_listBox.AddString(str); } } void CYourDialog::OnEditButtonClicked() { // 获取选中的项索引 int index = m_listBox.GetCurSel(); if (index != LB_ERR) { // 获取选中的项的文本 CString str; m_listBox.GetText(index, str); // 弹出对话框,获取用户修改后的字符串 if (AfxInputBox(_T("Edit Item"), _T("Enter new item name:"), str) == IDOK) { // 更新列表框和动态数组中的数据 m_listData[index] = str; m_listBox.DeleteString(index); m_listBox.InsertString(index, str); m_listBox.SetCurSel(index); } } } void CYourDialog::OnDeleteButtonClicked() { // 获取选中的项索引 int index = m_listBox.GetCurSel(); if (index != LB_ERR) { // 从列表框和动态数组中删除选中的项 m_listData.erase(m_listData.begin() + index); m_listBox.DeleteString(index); } } ``` 代码:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CDamogu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值