我最近刚接触vc,我想在程序中定义几个方法,分别是要在richedit中删除任意行,在任意位置增加一行,载如一个文件到richedit中,取得指定行的内容。能给我具体的代码讲解一下吗?谢谢!!!

解决方案 »

  1.   

    我在把一个文件倒入richedit中时是这样做的,感觉特别烦,不知道大家是否有更简单一点的办法。我的做法如下:我已经在头文件中定义了CRichEditCtrl m_richedit;然后又在OnCreate事件的处理函数中生成了该对象m_richedit.Create(WS_VISIBLE,CRect(0,0,10,10),this,6000);
    以下是具体的倒入文件的代码:
             char buffer[128];
    CString tmp;
    long nLen; ifstream infile("test.txt");
    while(!infile.eof())
    {
    memset(buffer,0x00,sizeof(buffer));
    infile.getline(buffer,128);
    cout << buffer << endl;
    tmp += buffer;
    tmp += "\n";
    nLen = GetWindowTextLength();
    m_richedit.SetSel(nLen,nLen);
    m_richedit.ReplaceSel(tmp,false);
    }总感觉不大好,很麻烦,各位有什么更好的办法吗?
      

  2.   

    上面那个程序有问题,我发现就算GetWindowTextLength()总是把回车换行给忽略掉,所以本来要分行加到richedit中的内容结果都放到一行中去了。怎么解决这个问题?我现在的做法如下:
    char buffer[128];
    CString tmp;
    long nLen = 0;

    ifstream infile("test.txt");
    while(!infile.eof())
    {
    memset(buffer,0x00,sizeof(buffer));
    infile.getline(buffer,128);
    cout << buffer << endl;

    Memo1.SetSel(nLen,nLen);
    Memo1.ReplaceSel(buffer,false); nLen += CString(buffer).GetLength();
    Memo1.SetSel(nLen,nLen);
    Memo1.ReplaceSel("\r\n",false);
    nLen += 1;
             }
    怎么加上回车换行符呢?这上面的程序能把一个文件倒入到richedit中吗?哦,richedit已经是ES_MULTILINE,ES_WANTRETURN.