sendmessage(handle,wm_keydown,ssshift,vk_down,0)
??????

解决方案 »

  1.   

    to Kingron(WinAPI) :
    好象没法通过编译。搞掂即时送上100分。
      

  2.   

    WINDOW API:keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY or 0,0);
    keybd_event(VK_DOWN,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
    keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
      

  3.   

    to nne998(tony) :
    好象没有什么反应。
    我是要模拟一个shift+tab的按键,即让焦点去到上一个控件。
    所以我改成keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY or 0,0);
    keybd_event(VK_Tab,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
    keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);但是没有反应。
      

  4.   

    改为:keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY or 0,0);
    keybd_event(VK_TAB,0,KEYEVENTF_EXTENDEDKEY or 0,0);
    keybd_event(VK_TAB,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);
    keybd_event(VK_SHIFT,0,KEYEVENTF_EXTENDEDKEY or KEYEVENTF_KEYUP,0);可以了.
      

  5.   

    啊,不好是意思,错了:
    perform(WM_NEXTDLGCTL,1,0);//向上移动焦点。
      

  6.   

    我的肯定可以,我在 VC 和 DELPHI 上都试过啦!!!!
      

  7.   

    我的肯定可以,我在 VC 和 DELPHI 上都试过啦!!!! 加分,加分!!!
      

  8.   

    一定会给分的,并且继续加50分。nne998(tony) 的方法可以,100分请笑纳:)Kingron(WinAPI) 的方法在一般的form中是可以,但如果写在组件里面就没有反应了。
    比如新建一个tedit类的组件TxxxEdit,加入
     protected
        { Protected declarations }
        procedure KeyDown(var Key: Word;Shift: TShiftState); override;procedure TxxxEdit.KeyDown(var Key: Word; Shift: TShiftState);
    begin
    perform(WM_NEXTDLGCTL,1,0);
    end;
    这样做没有反应。
    nne998(tony) 的方法可以,但我觉得好象比较偏门一点,不知道会不会有其它的作用。
    所以还想继续请教各位有什么其它的方法,请不吝赐教。