mfc从下拉组合框中获取学号信息,点击查询按钮在文件中找到相应学生信息并输出到列表框中
时间: 2024-02-21 11:58:48 浏览: 130
好的,我来给你讲一下大致思路:
1. 在 MFC 界面上添加一个下拉组合框,用于选择学号。
2. 添加一个查询按钮,点击后触发查询操作。
3. 在点击查询按钮时,获取下拉组合框中选中的学号。
4. 打开文件,逐行读取学生信息,查找与选中学号相符的学生信息。
5. 将找到的学生信息输出到列表框中。
下面是具体的代码实现:
1. 在 MFC 界面上添加一个下拉组合框和列表框
在对话框资源中添加一个下拉组合框和一个列表框,分别命名为 IDC_COMBO 和 IDC_LIST。
2. 添加一个查询按钮,点击后触发查询操作
在对话框资源中添加一个按钮,命名为 IDC_BUTTON_SEARCH。在类向导中添加一个响应函数 OnBnClickedButtonSearch(),并在该函数中添加查询操作的代码。
3. 在点击查询按钮时,获取下拉组合框中选中的学号
在 OnBnClickedButtonSearch() 函数中,首先获取下拉组合框中选中的学号。代码如下:
```
CString strStudentNo;
int nIndex = m_combo.GetCurSel(); // 获取选中项的索引
if (nIndex != CB_ERR) { // 如果选中项存在
m_combo.GetLBText(nIndex, strStudentNo); // 获取选中项的文本
}
```
这里的 m_combo 是下拉组合框的成员变量,通过类向导添加。strStudentNo 是一个字符串变量,用于保存选中的学号。
4. 打开文件,逐行读取学生信息,查找与选中学号相符的学生信息
接下来,打开文件,逐行读取学生信息,查找与选中学号相符的学生信息。代码如下:
```
CStdioFile file;
if (file.Open(_T("student.txt"), CFile::modeRead)) { // 打开文件
CString strLine;
while (file.ReadString(strLine)) { // 逐行读取文件
// 解析学生信息,获取学号和其他信息
CString strStudentNoFromFile = strLine.SpanExcluding(_T(" "));
CString strStudentInfo = strLine.Mid(strStudentNoFromFile.GetLength() + 1);
if (strStudentNo == strStudentNoFromFile) { // 如果学号匹配
// 将学生信息输出到列表框中
m_list.AddString(strStudentInfo);
}
}
file.Close(); // 关闭文件
}
```
这里的 student.txt 是存储所有学生信息的文件,每行格式为:学号 姓名 年龄 性别。strLine 是一个字符串变量,用于保存读取到的每一行信息。strStudentNoFromFile 和 strStudentInfo 分别是解析出来的学号和其他信息。
5. 将找到的学生信息输出到列表框中
最后一步,将找到的学生信息输出到列表框中。这里的 m_list 是列表框的成员变量,通过类向导添加。代码如下:
```
m_list.ResetContent(); // 先清空列表框
// 在查询操作中已经将找到的学生信息添加到列表框中了
// 这里不需要再做额外的操作
```
好了,以上就是从下拉组合框中获取学号信息,点击查询按钮在文件中找到相应学生信息并输出到列表框中的大致思路和代码实现。希望能对你有所帮助!
阅读全文