天天看點

PB中如何利用左右鍵及Enter鍵來轉移列的焦點

問:請問如何實作利用左右鍵及Enter鍵進行列的焦點轉移 ?

答:這要用到Windows中的API函數keybd_event()

①定義API:

    Subroutine keybd_event(uint bVk,uint bScan,long dwFlags,long dwExtraInfo ) library "user32.dll"

②自定義一使用者事件(ue_keydown  ID:pbm_dwnkey):

    integer VK_TAB = 09

    integer VK_SHIFT = 16

    if key = KeyLeftArrow! then

       keybd_event(VK_SHIFT,0,0,0) //按下shift

       keybd_event(VK_TAB,0,0,0) //按下tab

       keybd_event(VK_TAB,0,2,0) //釋放tab

       keybd_event(VK_SHIFT,0,2,0) //釋放shift

       return 1

    end if

    if key = KeyRightArrow! or key=KeyEnter! then

       keybd_event(VK_TAB,0,0,0) //按下tab

       keybd_event(VK_TAB,0,2,0) //釋放tab

       return 1

    end if

如若隻是想利用ENTER鍵來實作TAB鍵的功能可以用以下代碼:

    if key=keyenter! then

        Send(Handle(this),256,9,Long(0,0))   //發送TAB鍵

      Return 1  //取消原ENTER鍵的動作

    end if

繼續閱讀