我想让 rich edit 动态显示接收过来的信息,
请问,如果触发 对话框的 重画啊,高手给出详细代码,我初学,还没入门。有人给出以下代码,我有几个疑问不懂啊〈在你的对话框里面的接收数据的方法里面加上richCtrl1.SetSel(GetTextLength(),GetTextLength());
richCtrl1.ReplaceSel(str);其中上面的richCtrl1是你的一个CRichEditCtrl控件,str是接收到的数据〉richCtrl1是控件是什么意思啊,是不是我新加一个richctrl控件时插成员变量的时候
有两种类型(value/ctrl)选ctrl的意思啊,还有
我的对话狂里面除了构造函数和初试化函数就没别的方法了。
因为我还不懂得消息怎么触发的机制啊,请问,和控件绑定的那个m-变量是默认全局吗,为什么我必须事例化一个对象后,
才能引用该变量。
请高手替我解决啊,急

解决方案 »

  1.   

    “richCtrl1是控件是什么意思啊,是不是我新加一个richctrl控件时插成员变量的时候
    有两种类型(value/ctrl)选ctrl的意思啊,”
    对的,那个CRichEditCtrl是你的richctrl控件的ctrl型的对象,可以通过他来对你的richctrl控件进行操作“我的对话狂里面除了构造函数和初试化函数就没别的方法了。
    因为我还不懂得消息怎么触发的机制啊,”
    打开你的CALSS VIEW,然后添加你要的东西“请问,和控件绑定的那个m-变量是默认全局吗,为什么我必须事例化一个对象后,
    才能引用该变量。

    那个m_的意思是说是个类成员对象,不是全局的,这么写只是一种良好的写代码的习惯,没什么特别的意思
      

  2.   

    但是我设定了一个ctrl形的变量后,却还是无法引用他啊
    他还不是 全局变量。同时请问有没有 类似这样的语句让我来申明一个richedit对象指针CListBox* pLB = (CListBox*)GetDlgItem(IDC_DEPT)
    谢谢大哥啊
      

  3.   

    那个是类里面的成员变量,在该类所在的CPP文件当中可以随意调用,你想在哪调用这个变量??
      

  4.   

    richCtrl1.SetSel(GetTextLength(),GetTextLength());
    选择richCtrl1的TEXT中最后的那个字符的后面(那里没有东西,可以理解为NULL!?)richCtrl1.ReplaceSel(str);
    将这个选择的字符替换成你加入的字符串。总的意思是在那个RichCtrl中的TEXT最后那里添加一个str字符串的TEXT。(我的表达能力很差,请原谅^_^)
      

  5.   

    我用下面这样写编译通过拉
    CRichEditCtrl* eDit=(CRichEditCtrl*)(IDC_GET_Deliver);
    eDit->SetSel(eDit->GetTextLength(),eDit->GetTextLength());
    eDit->ReplaceSel("dd");
    但是就是显示不出来dd啊,
    请问,是不是还要触发什么函数来更新窗口啊,
    谢谢各位了
      

  6.   

    你用的什么控件啊??
    先来个简单的,你在对话框模板上面丢一个Edit Box控件,然后在这个控件上点右键,打开class wizard对话框,选择Member Variables页签,双击IDC_EDIT1,在Member variable name里面填:m_edit,点OK。然后在你程序的BOOL C...Dlg::OnInitDialog()函数的// TODO: Add extra initialization here
    这一句下面添加如下代码:
    m_edit = "hello~"; 
    UpdateData(FALSE);
    然后运行程序,你就可以看到效果了。。你把控件换成rich edit,实现的过程也是这样的。
      

  7.   

    这个我已经实现过了,关键就是不能在初试化的时候赋直,需要动态更新里面的直。谢谢这位大哥了,还有就是不要在构造函数里赋直,如果大哥能给我发个vc工程过来,就感激不进了。
    [email protected]
      

  8.   

    在你App的InitInstance()函数里面
    加上
    AfxInitRichEdit()
    然后再你的
    dlg的OnInitDialog()函数里面
    加上
    CRichEditCtrl* eDit=(CRichEditCtrl*)GetDlgItem(IDC_GET_Deliver);
    eDit->SetSel(eDit->GetTextLength(),eDit->GetTextLength());
    eDit->ReplaceSel("dd");
      

  9.   

    那位好心人给我发个工程过来look 一下啊,我把银子都给你
      

  10.   

    我来接分!全局函数里面的代码
     CRichEditCtrl* RR=(CRichEditCtrl*)GetDlgItem(IDC_RICHEDIT1);
    RR->SetSel(RR->GetTextLength(),RR->GetTextLength());
    RR->ReplaceSel("str");你在全局函数中用上面的代码,肯定通不过的!
    GetDlgItem()是窗口函数,要么在窗口类或其字类中使用,要么要指定窗口句柄。CTestWndDlg* pDlg = (CTestWndDlg*)AfxGetMainWnd();
    CRichEditCtrl* RR = (CRichEditCtrl*)pDlg->GetDlgItem(IDC_RICHEDIT1);
    RR->SetSel(RR->GetTextLength(), RR->GetTextLength());
    RR->ReplaceSel("str");
      

  11.   

    鸽子情缘老兄,谢谢了,
    还想请问一下,代码编译通过了,可是好象没反映啊rich edit控件内容没办法