CString m_SendData;
// ::SendMessage(AfxGetApp()->m_pMainWnd->m_hWnd,UM_COMSEND,NULL,NULL);我想把m_SendData字符变量发过去 ,sendmessage的附加字段 wPararm lParam该怎么确定?

解决方案 »

  1.   

    SendMessage(hWnd,UM_COMSEND,0,(LPARAM)&m_SendData);
    接收函数再将最后一个参数用CString*强制转换即可。
      

  2.   

    CString m_SendData; 
    LPCTSTR p = m_SendData.operator LPCTSTR();
    ::SendMessage(AfxGetMainWnd()->GetSafeHwnd(), UM_COMSEND, NULL, LPARAM(P)); 如果是给其他进程的窗口发消息,要用WM_COPYDATA,它使用内存映射机制。
      

  3.   

    我都是先把CString转成char*,再把char*转成LPARAM,用CString直接转LPARAM时,出现过问题。
      

  4.   

    wPararm为字符的长度值,lParam为存储字符的变量,以下程序可以参考一下:
    char ch[10];
    ::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)ch);