delphi 用windows消息传递字符串

可以用PostThreadMessage,例如:  
 

  //发送线程  

  Procedure   TThread1.Execute;   
  var   
      sMes:String;   
      pMes:^String;   
      iTemp:Integer;   
  begin   
      sMes:='Test';   
      New(pMes);   
      pMes^:=sMes;   
      PostThreadMessage(thread2.ThreadID,WM_StartRecording,Integer(pMes),0);   
      iTemp:=111;   
      PostThreadMessage(thread2.ThreadID,WM_OriginalData,iTemp,0);   
  end;  

  //接受线程  
  procedure   TThread2.Execute;  
  var  
      msg:TMsg;  
      sMes:String;  
      pMes:^String;  
      iTemp:Integer;  
  begin  
      //消息循环  
      while   GetMessage(msg,0,0,0)   do  
      begin  
          Case   msg.message   of  
              WM_StartRecording:  
              begin  
                  //传过来的是String;  
                  pMes:=msg.wParam;  
                  sMes:=pMes^;  
                  Dispose(pMes);  
              WM_OriginalData:  
              begin  
                  //传过来的是整数  
                  iTemp:=msg.WParam;  
              end;  
              else   begin  
                  TranslateMessage(msg);  
                  DispatchMessage(msg);  
              end;  
          end;  
      end;  
  end;  

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据