怎么用消息传送字符串?长度有限制吗?
如果不能传,有什么替代的办法可以实现这样的功能?

解决方案 »

  1.   

    你可以为你的字符串申请空间
    用NEW  MALLOC什么的都可以
    把指针传走就可以了
    LRESULT SendMessage( 
    UINT message, 
    WPARAM wParam = 0, 
    LPARAM lParam = 0 ); 用LPARAM lParam这个参数 传递指针wParam 
    Specifies additional message-dependent information. 
    lParam 
    Specifies additional message-dependent information.
      

  2.   

    传递字符串指针,如果是PostMessage,记住字符串应该从堆上分配,由消息处理函数来删除。
      

  3.   

    用PostMessage或SendMessage传送字符串指针应该可以
      

  4.   

    就应该传递指针。const int nDataLen = 100;
    char *pDataBuf = new char[nDataLen];
    memset(pDataBuf, 0x00, sizeof(char)*nDataLen);
    strcpy(pDataBuf, "I hate You!!");::PostMessage(hWnd, (WPARAM)nDataLen, (LPARAM)pDataBuf);
    或者 ::SendMessage(hWnd, (WPARAM)nDataLen, (LPARAM)pDataBuf);//接收的时候
    LRESULT ...(WPARAM wParam, LPARAM lParam)
    {
      char *szDataBuf = (char *)lParam;  ......
      delete [] szDataBuf;
    }