int num1,num2,num3;
CString str1,str2,str3;
::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,5,(LPARAM)str1);
::SendMessage(m_edit2.m_hWnd,WM_GETTEXT,5,(LPARAM)str2);
num1 = _wtoi(str1);
num2 = _wtoi(str2);
num3 = num1 + num2;
str3.Format(L"%d",num3);
m_edit3.SendMessage(WM_SETTEXT,10,(LPARAM)str3);上面的代码在编译的时候提示:error C2440: “类型转换”: 无法从“CString”转换为“LPARAM”不要用字符数组,只用CString类型,请问以上代码怎么修改 谢谢

解决方案 »

  1.   

    这两行出错了吧?
      ::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,5,(LPARAM)str1);
        ::SendMessage(m_edit2.m_hWnd,WM_GETTEXT,5,(LPARAM)str2);?这里不能强制转换,
    如果str1=“123”等数字的话,试一下:
    int a1;
    atoi(str1,a1,10);
    ::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,5,(LPARAM)a1);或许勉强编译的过去
      

  2.   


     
     int num1,num2,num3;
        CString str1,str2,str3;
        ::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,5,(LPARAM)str1.GetBuffer(256));
        ::SendMessage(m_edit2.m_hWnd,WM_GETTEXT,5,(LPARAM)str2.GetBuffer(256));
    str1.ReleaseBuffer();
    str2.ReleaseBuffer()
        num1 = _wtoi(str1);
        num2 = _wtoi(str2);
        num3 = num1 + num2;
        str3.Format(L"%d",num3);
        m_edit3.SendMessage(WM_SETTEXT,10,(LPARAM)str3.GetBuffer(0));