mfc使用两个下拉组合框获取文件中所有学生姓名和学号,两个按钮分别执行按姓名和按学号查询,一个列表框用于显示文件中对应学生信息示例代码
时间: 2024-02-18 18:05:09 浏览: 60
好的,下面是一个简单的示例代码,希望能帮助您:
首先,您需要在您的对话框类中声明以下成员变量:
```cpp
CComboBox m_comboName;
CComboBox m_comboID;
CListBox m_listInfo;
```
在 OnInitDialog() 函数中,您需要添加以下代码来初始化两个下拉组合框:
```cpp
// 初始化姓名下拉组合框
m_comboName.ResetContent();
for (int i = 0; i < m_arrStudents.GetSize(); i++)
{
m_comboName.AddString(m_arrStudents[i].strName);
}
// 初始化学号下拉组合框
m_comboID.ResetContent();
for (int i = 0; i < m_arrStudents.GetSize(); i++)
{
CString strID;
strID.Format(_T("%d"), m_arrStudents[i].nID);
m_comboID.AddString(strID);
}
```
在按姓名查询按钮的单击事件处理程序中,您需要添加以下代码:
```cpp
// 获取所选姓名
CString strName;
m_comboName.GetLBText(m_comboName.GetCurSel(), strName);
// 在文件中查找对应学生信息
for (int i = 0; i < m_arrStudents.GetSize(); i++)
{
if (m_arrStudents[i].strName == strName)
{
// 找到了对应学生信息,将其添加到列表框中
CString strInfo;
strInfo.Format(_T("%s\t%d\t%d"), m_arrStudents[i].strName, m_arrStudents[i].nID, m_arrStudents[i].nScore);
m_listInfo.AddString(strInfo);
}
}
```
在按学号查询按钮的单击事件处理程序中,您需要添加以下代码:
```cpp
// 获取所选学号
CString strID;
m_comboID.GetLBText(m_comboID.GetCurSel(), strID);
int nID = _ttoi(strID);
// 在文件中查找对应学生信息
for (int i = 0; i < m_arrStudents.GetSize(); i++)
{
if (m_arrStudents[i].nID == nID)
{
// 找到了对应学生信息,将其添加到列表框中
CString strInfo;
strInfo.Format(_T("%s\t%d\t%d"), m_arrStudents[i].strName, m_arrStudents[i].nID, m_arrStudents[i].nScore);
m_listInfo.AddString(strInfo);
}
}
```
这些代码应该可以帮助您实现您的 MFC 应用程序。当然,这只是一个简单的示例,实际上您还需要处理一些细节和错误情况。
阅读全文