VC++6.0 请问如何把TXT里的内容 在COMBO BOX中 按行显示出来
我现在有一个TXT文档叫aaa.txt里面存放的数据一共有多行比如第一行123第二行456第三行789如何点击COMBOBOX的下拉箭头后这些数据在下拉的列表中按行显示出...
我现在有一个TXT文档叫aaa.txt 里面存放的数据 一共有多行 比如第一行123 第二行456 第三行789 如何点击COMBO BOX的下拉箭头后 这些数据在下拉的列表中 按行显示出来? 悬赏100分
展开
2个回答
展开全部
//参数 Filename 为要读的文件名,如:read.txt 。
//ctrlCombox 为一CComboBox 控件,即要用来把文件内容显示到CComboBox 的控件。
//使用举例:CComboBox m_ctrlCOMBOX; //定义一控件。
// ReadFileToCOMBOX("ddd.txt",m_ctrlCOMBOX); 即可.
void ReadFileToCOMBOX(char * Filename,CComboBox & ctrlCombox)
{
ctrlCombox.ResetContent();
FILE *fp=fopen(Filename,"r");
if(fp == NULL)
return ;
char buf[256];
CString strcom;
int index;
while(!feof(fp))
{
memset(buf, 0, 256);
fgets(buf, 256, fp);
//去掉最后一个字符,可能是换行符
index=strlen(buf);
if(index>0)
{
if(buf[index-1]=='\n' || buf[index-1]=='\r')
buf[index-1]=0x00;
}
strcom.Empty();
strcom.Format("%s",buf);
strcom.TrimLeft(" "); //去掉左右空格,所一行全是空格,则不显示
//
strcom.TrimRight(" ");
if(!strcom.IsEmpty())
{
ctrlCombox.AddString(strcom);
}
}
int count =ctrlCombox.GetCount();
if(count>0)
ctrlCombox.SetCurSel(0);
fclose(fp);
}
//ctrlCombox 为一CComboBox 控件,即要用来把文件内容显示到CComboBox 的控件。
//使用举例:CComboBox m_ctrlCOMBOX; //定义一控件。
// ReadFileToCOMBOX("ddd.txt",m_ctrlCOMBOX); 即可.
void ReadFileToCOMBOX(char * Filename,CComboBox & ctrlCombox)
{
ctrlCombox.ResetContent();
FILE *fp=fopen(Filename,"r");
if(fp == NULL)
return ;
char buf[256];
CString strcom;
int index;
while(!feof(fp))
{
memset(buf, 0, 256);
fgets(buf, 256, fp);
//去掉最后一个字符,可能是换行符
index=strlen(buf);
if(index>0)
{
if(buf[index-1]=='\n' || buf[index-1]=='\r')
buf[index-1]=0x00;
}
strcom.Empty();
strcom.Format("%s",buf);
strcom.TrimLeft(" "); //去掉左右空格,所一行全是空格,则不显示
//
strcom.TrimRight(" ");
if(!strcom.IsEmpty())
{
ctrlCombox.AddString(strcom);
}
}
int count =ctrlCombox.GetCount();
if(count>0)
ctrlCombox.SetCurSel(0);
fclose(fp);
}
展开全部
SendMessage(GetDlgItem(hWnd,IDC_COMBO),CB_INSERTSTRING,0,(LPARAM)(_T("123")));
SendMessage(GetDlgItem(hWnd,IDC_COMBO),CB_INSERTSTRING,1,(LPARAM)(_T("456")));
SendMessage(GetDlgItem(hWnd,IDC_COMBO),CB_INSERTSTRING,2,(LPARAM)(_T("789")));
SendMessage(GetDlgItem(hWnd,IDC_COMBO),CB_INSERTSTRING,3,(LPARAM)(_T("abc")));
以上代码:hWnd换成你COMBO BOX主窗口的窗口,IDC_COMBO换成你COMBO BOX的ID,0,1,2,3这些是序号,换成你读出的行数,(LPARAM)(_T("123"))这样的换成你从txt读出的数据。
SendMessage(GetDlgItem(hWnd,IDC_COMBO),CB_INSERTSTRING,1,(LPARAM)(_T("456")));
SendMessage(GetDlgItem(hWnd,IDC_COMBO),CB_INSERTSTRING,2,(LPARAM)(_T("789")));
SendMessage(GetDlgItem(hWnd,IDC_COMBO),CB_INSERTSTRING,3,(LPARAM)(_T("abc")));
以上代码:hWnd换成你COMBO BOX主窗口的窗口,IDC_COMBO换成你COMBO BOX的ID,0,1,2,3这些是序号,换成你读出的行数,(LPARAM)(_T("123"))这样的换成你从txt读出的数据。
追问
谢谢 但是我之前不知道我TXT里面存的是什么内容 只知道TXT里面有东西 要在COMBO BOX多行显示出来 所以不能直接设置好123 456 这些内容的 如何自动读取呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询