我用GetFirstVisibleLine();
获取到的行数 是正确的 
但是我做的是 点击一个按钮 让它从10进制的列 成16进制的 
就像 变成 
.       .
.       .
.       .
10      A
12      B
13      C
14      D
.       .
 
我想让它变完以后还是这个位置就是数字的进制变了。
运行的时候 从10进制 变 16时  行数变化特别大。
for (int j=0;j<leng;j++)
{
if(c==1)
{
a.Format("%d",set);
m_Edit+=a+"\r\n";
}
else
{
a.Format("%.10X",set);
m_Edit+=a+"\r\n";
}
set+=16;
}
能给点思路吗?
数据没变 只有行串位了

解决方案 »

  1.   

    你这个用list control来做多好
      

  2.   

    a.Format("%.10X",set);//这句有问题吧。。这是什么格式?
      

  3.   

    变换完了用 LineScroll 滚动int nFirstVisible = m_Edit.GetFirstVisibleLine();
    ……
    m_Edit.LineScroll(nFirstVisible, 0);
      

  4.   

    先读出EDIT的内容并保存在一个数组中然后清空控件再根据数组中的数进行转换
    myedit.Format("%.10X",set);
    m_mycontrol.ReplaceSel(myedit);

    m_myedit+=myedit+"\r\n";
      

  5.   

    按我的思路小试了一下没有问题
    点击按钮程序UpdateData(TRUE);
    CString myedit;
    int set;
    int count=m_mycontrol.GetLineCount()-1;
    char *a=new char[count];
    for (int j=0;j<count;j++)
    {
    m_mycontrol.GetLine(j,&a[j]);
    }
        m_myedit="";
    for (int i=0;i<count;i++)
    {
    myedit.Format("%.10X",a[i]-'0');
    m_myedit+=myedit+"\r\n";
    }
    UpdateData(false);