PostMessage(edtNum.Handle, WM_KEYDOWN, VK_SEPARATOR, 0);
发送逗号','后edit无反应
另外不知道发送'#'的按键值

解决方案 »

  1.   

    procedure TForm1.btn1Click(Sender: TObject);
    var
      S:string;
    begin
      s:=',';
      SendMessage(edt1.Handle, WM_SETTEXT, 0, Integer(S));
    end;
      

  2.   

    查看一下SDK帮助看WM_KEYDOWN消息的参数
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      msg : Pchar;
    begin
      msg := StrAlloc(50);
      StrCopy(msg,'hello world');
      SendMessage(edit1.Handle,WM_SETTEXT, 0, Integer(msg));  
    end;
      

  4.   

    WM_KEYDOWN不是所有键都可以发送的。楼主可以放一个edit,然后在edit的keydown事件里面试试,VK_SEPARATOR这个键是没有反应的。
    VK_SEPARATOR在keypress里面才有反映。
    同样楼主也可以试试sendmessage(edit1.Handle, WM_KEYDOWN, VK_Delete, 1);这个就可以实现的。
      

  5.   

    所以如果楼主仅仅是想给edit赋值的话,用楼上几位说的WM_SETTEXT就可以了。不知楼主到底想实现什么呢?
      

  6.   

    再或者楼主可以用WM_CHAR消息。如:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      sendmessage(edit1.Handle, WM_CHAR, VK_SEPARATOR, 1);
    end;
      

  7.   


      Edit1.SetFocus;
      keybd_event(65,MapVirtualKey(65,0),0,0);//键下a键。
      keybd_event(65,MapVirtualKey(65,0),KEYEVENTF_KEYUP,0);//放开a键。
      

  8.   

    sendmessage(edit1.Handle, WM_CHAR, $41, 1);这个就是A,呵呵
      

  9.   

    感谢xixuemao(俺可是㊣②㈧经儿滴人) ,爱死你了! ^*^