我在窗体上做了一个 EDIT控件. 又创建了一个类,从CEDIT派生.然后在创建的类里使用SetDlgItemText(IDC_EDIT1,"asdf");在运行的时候出现了错误. 我用GetDlgItem(IDC_EDIT1)->SetWindowText("asf");同样也有错误.给控件关联一个变量,也有错误.请问怎么做?

解决方案 »

  1.   

    SetDlgItemText(IDC_EDIT1,"asdf"); 
    =============
    这个是用在对话框类中的,不是用在控件类中的
      

  2.   

    如果你想在CEdit的子类中改变输出内容,一般用API处理:::SetWindowText(GetSafeHwnd(),"asdf");
      

  3.   

    如果你想在CEdit的子类中改变输出内容,一般用API处理:::SetWindowText(GetSafeHwnd(),"asdf");
      

  4.   

    好像也不行啊. ::SetWindowText((HWND)GetDlgItem(IDC_EDIT1),"123");
      

  5.   

    我上面代码是你这样的吗?我上面有GetDlgItem(IDC_EDIT1)吗?
      

  6.   

    我是想向 另一个 EDIT里面 发送字符串...
      

  7.   

    类中的代码是对所有Edit对象都有效的,所以类的代码中怎么可能会出现GetDlgItem(IDC_EDIT1)这样的代码呢?用GetSafeHwnd()可以取得当前类对象所关联的EDIT控件的HWND,而不是用GetDlgItem来取句柄,当你的类对象和IDC_EDIT1控件关联时,GetSafeHwnd()取得的就是IDC_EDIT1的HWND,如果和IDC_EDIT2控件关联时,GetSafeHwnd()取得的就是IDC_EDIT2的HWND.另外,你从CEdit类中继承了一个类,必须要对相关控件子类化才能起作用。
      

  8.   

    另一个EDIT,你想让你的CEdit子类关联你的EDIT控件吗?
      

  9.   

    你最好将你的目的说清楚,向另一个EDIT发送字符串为什么要继承CEdit类呢?
      

  10.   

    我真是败了.  我想实现的功能是,当我操作EDIT1的时候,EDIT2也能接受到消息. EDIT1就是自定义的类,动态创建的,为的是可以得到WM_CHAR消息.EDIT2是直接画到窗体上去的. 我想在EDIT1的 WM_CHAR消息处理里面把字符 转发给 EDIT2.
      

  11.   

    获得EDIT2的句柄,在edit1的WM_CHAR消息里给edit2发送消息
      

  12.   

    你是想在EDIT1的WM_CHAR消息中将相关的内容发给EDIT2?可以在EDIT1的函数中写作:::SetWindowText(::GetDlgItem(GetSafeHwnd(),IDC_EDIT2),"kkkkk");
      

  13.   

    CEdit1你是怎么用的呢?因为用的是CEdit类的子类,所以要子类化才能起作用的。