请问如何用postmessage向edit发送"*"和"#"按键
还有,在onkeydown里如何获取"*"和"#"键

解决方案 »

  1.   

    先给你获取的。
    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if (key = $38) and (ssShift in shift)
      then
        showmessage('*')
      else if (key = $33) and (ssShift in shift)
      then
        showmessage('#');
    end;
      

  2.   

    //以下是向Edt1发送*号或#号
    var
      s:string;
    begin
      S:='#';
      SendMessage(edt1.Handle,WM_SETTEXT,0,Integer(S)); //用 SendMessage
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      edit1.SetFocus;
      keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), 0, 0);
      keybd_event($33, MapVirtualKey($33, 0), 0, 0);
      keybd_event($33, MapVirtualKey($33, 0), KEYEVENTF_KEYUP, 0);
      keybd_event(VK_SHIFT, MapVirtualKey(VK_SHIFT, 0), KEYEVENTF_KEYUP,0);
    end;发送#的,把$33改成$38就是*的
      

  4.   

    晕,用WM_SETTEXT 是可以发送文本,但你截获不到keydown,朋友