wParam: WPARAM;SendMessage(h,WM_SETTEXT,255,WPARAM); 输出了几次都是乱码,如何才能正确输出呢?

解决方案 »

  1.   


    var
      s:string;
    begin
      s := 'Test';
      SendMessage(Edit1.Handle,WM_SETTEXT,0,Integer(PChar(S)));
    end;
      

  2.   

    或者var
      s:string;
    begin
      s := 'Test';
      SendMessage(Edit1.Handle,WM_SETTEXT,0,Integer(@S[1]));
    end;
      

  3.   

    PChar是和@都是取字符串开始的地址。这块主要是为了传一个字符转的地址。
      

  4.   

    如果是同进程的话,可以用楼上几位的方法
    如果是不同进程之间传递字符串的话,上面直接SendMessage就会有问题了,可以使用WM_COPYDATA来传递