响应一个按钮消息,通过一个文本框向combox添加数据,如下
void C**Dlg::OnBtnAdd() 
{
UpdateData(TRUE);
if (m_strEdit.GetLength()<1)
{
AfxMessageBox("不能为空!");
return;
}
m_combox.AddString(m_strEdit);
m_strEdit="";
UpdateData(FALSE);
}
比如向组合框中添加abc;
怎么让程序下次启动的时候保留abc,也就是说让这次操作成为一次永久的操作。

解决方案 »

  1.   

    找个文件存起来,操作INI文件
      

  2.   

    我也是觉得使用INI文件,不过有没有其他的办法啊,因为ini文件有可能被误删
      

  3.   

    放在任何地方都有可能误删,放到光盘中还可能光盘划伤,放到注册表也有高手能删除。
    因此你没有必要考虑那么远。99%的情况下,用户是不会到你的安装目录中随便删除文件的。
    比如你自己,windows目录中的文件你敢随便删么?只要不是你的程序去误操作就可以了。
      

  4.   

    如果使用ini的话,响应OnBtnAdd()的同时将数据写入ini,但是当下次运行程序时,如何将ini中的数据显示在combox中呢,写入数据时是否要做个标记,否则显示在combox中会不会在同一行?
      

  5.   

    下次运行时,你自然要从INI文件中把内容读出来了。你知道要写入,怎么不知道要读取?
      

  6.   

    用GetApp()->WriteProfileString函数就可以,不用写到文件里面。
      

  7.   

    我知道写入
    void C**Dlg::OnBtnAdd() 

    UpdateData(TRUE); 
    if (m_strEdit.GetLength() <1) 

    AfxMessageBox("不能为空!"); 
    return; 

    m_combox.AddString(m_strEdit); //将数据保存到tet文件中 FILE *pFile = fopen("1.txt","a");
    fwrite(m_strEdit,1,m_strEdit.GetLength(),pFile);
    fflush(pFile);
    fclose(pFile);m_strAddCity="";
    UpdateData(FALSE); 

    比如说第一次写入:fisrt 第二次写入:second,那么文件中就是:fisrtsecond,那读取文件的时候怎么判断将多少字符写入combox中去呢,在哪里将fisrtsecond断开字符呢。
      

  8.   


    你就不会每次写入时,最后加一个回车换行符么?
    用CStdioFile就可以逐行写入和读取了。另外,前面的都在说用INI文件;或者你都可以用XML文件啊。
      

  9.   

    1, 写到ini文件或者XML 文件
    2. 写到注册表,