1、ComBox控件中下拉框内容从文件中读取
首先在工具箱中拖拽ComBox控件到对话框中,ID为IDC_COMBO_Model,同时在工程目录下创建一个名字为ModelInfo文件,在CcomBoxTestDlg.h文件中申明函数 void AddModelToComboBox();接着在CcomBoxTestDlg.cpp文件中实现AddModelToComboBox()函数,实现内容如下:
1 void CcomBoxTestDlg::AddModelToComboBox() { 2 CComboBox* pCombo = (CComboBox*)this->GetDlgItem(IDC_COMBO_Model); 3 pCombo->ResetContent(); 4 CString model_path = _T(".\ModelInfo"); 5 CStdioFile file; 6 if (file.Open(model_path, CFile::modeRead | CFile::shareDenyNone)) 7 { 8 while (TRUE) 9 { 10 CString str; 11 if (!file.ReadString(str)) 12 { 13 break; 14 } 15 CString model_name = str.SpanExcluding(_T(","));//SpanIncluding() 16 model_name.TrimLeft(_T(" ")); 17 model_name.TrimRight(_T(" ")); 18 if (model_name == _T("")) 19 { 20 continue; 21 } 22 if (pCombo->FindStringExact(-1, model_name) == CB_ERR) 23 {/* 24 CComboBox::FindStringExact 25 int FindStringExact(int nIndexStart,LPCTSTR lpszFind) const; 26 当第一个参数为-1时,则表示查询整个列表框的项目 27 列表中有字符串model_name返回值为0 28 列表中没有字符串model_name返回值为-1 CB_ERR代表-1 29 */ 30 pCombo->AddString(model_name); 31 } 32 } 33 file.Close(); 34 } 35 }
最后在OnInitDialog()中添加this->AddModelToComboBox()调用此函数。文件内容及运行效果如下所示:
1 void CcomBoxTestDlg::AddModelToComboBox() { 2 ((CComboBox*)this->GetDlgItem(IDC_COMBO_Model))->ResetContent(); 3 CStdioFile file; 4 int tmpFinder = 0; 5 if (file.Open(_T(".\ModelInfo"), CFile::modeRead | CFile::shareDenyNone)) { 6 CString tmp; 7 while (file.ReadString(tmp)) { 8 if (tmp.Find(_T("ModelName")) != -1) { 9 tmpFinder = 1; 10 } 11 if (tmpFinder == 1) { 12 if (tmp.Find(_T("=")) != -1) { 13 int postion = tmp.Find(_T("=")); 14 CString model_tmp = tmp; 15 CString modelstr; 16 modelstr = model_tmp.Left(postion); 17 ((CComboBox*)this->GetDlgItem(IDC_COMBO_Model))->AddString(modelstr); 18 } 19 } 20 } 21 file.Close(); 22 } 23 }