public:
void OnAfx();
///////////////////////
CMyHookDlg * dlg;
CString S;
void CMyHookDlg::OnBnClickedButton2()
{
S=_T("A");
dlg->OnAfx();
}
void CMyHookDlg::OnAfx()
{m_e1=S;// 错在这里 为什么不能直接赋值啊? m_e1是Edit控件CString 类型的  中断在return( reinterpret_cast< CStringData* >( m_pszData )-1 );
UpdateData(false);}求教啊~~~~~

解决方案 »

  1.   

    楼主可以时移CEdit类型,这样就可以直接
    m_edit1.SetWindowText(2);定义成CString类型,好像需要使用到Update(FALSE/TRUE)啥的,具体我没有那样使用过;
      

  2.   

    DoDataExchange函数下面
    DDX_Text(pDX, 控件资源编号, CString类型变量);
    例子:
    DDX_Text(pDX, IDC_EDIT_TASKNAME, m_TaskName);
      

  3.   

    类型之间是没有问题的,好像你的用法有问题;貌似函数OnAfx()里的S应该定义为类成员变量。
      

  4.   

    同一个类中函数调用,不用再用指针来调用吧,直接调用就行,改成这样:
    void CMyHookDlg::OnBnClickedButton2()
    {
    S=_T("A");
    dlg->OnAfx();//直接用OnAfx();
    }
      

  5.   

    void CMyHookDlg::OnBnClickedButton2()
    {
    S=_T("A");
    OnAfx();
    }
    void CMyHookDlg::OnAfx()
    {//m_e1=S;// 错在这里 为什么不能直接赋值啊? m_e1是Edit控件CString 类型的 中断在return( //reinterpret_cast< CStringData* >( m_pszData )-1 );m_e1.SetWindowText(S);UpdateData(false);}这样应该可以吧?
      

  6.   

      我这个是写在 钩子的回调函数里的 所以不能直接用 OnAfx(); 
      

  7.   

      我搞定了 我写的太死板了 在回调函数里直接用API 就可以了 ~~