Ovládání posuvníků MDI formuláře pomocí kláves

Postup:
Založte nový projekt. Standardně se vytvoří Form1. Nastavte mu vlastnost MDIChild na True a na událost Form_KeyDown zapište:

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)

   processKey KeyCode

End Sub

Nyní do projektu přidejte modul. Do deklarační části modulu zapište:

Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, _
ByVal wCmd As Long) As Long

Public Const SB_BOTTOM = 7
Public Const SB_LEFT = 6
Public Const SB_LINEDOWN = 1
Public Const SB_LINELEFT = 0
Public Const SB_LINERIGHT = 1
Public Const SB_LINEUP = 0
Public Const SB_PAGEDOWN = 3
Public Const SB_PAGELEFT = 2
Public Const SB_PAGERIGHT = 3
Public Const SB_PAGEUP = 2
Public Const SB_RIGHT = 7
Public Const SB_THUMBPOSITION = 4
Public Const SB_THUMBTRACK = 5
Public Const SB_TOP = 6
Public Const SB_ENDSCROLL = 8

Public Const WM_HSCROLL = &H114
Public Const WM_VSCROLL = &H115

Public Const GW_CHILD = 5


Public Sub processKey(KeyCode As Integer)

   Dim mdiclientwin As Long

   Select Case KeyCode
      Case vbKeyDown
         mdiclientwin = GetWindow(MDIForm1.hwnd, GW_CHILD)
         SendMessage mdiclientwin, WM_VSCROLL, SB_LINEDOWN, ByVal 0&

      Case vbKeyUp
         mdiclientwin = GetWindow(MDIForm1.hwnd, GW_CHILD)
         SendMessage mdiclientwin, WM_VSCROLL, SB_LINEUP, ByVal 0&

      Case vbKeyPageUp
         mdiclientwin = GetWindow(MDIForm1.hwnd, GW_CHILD)
         SendMessage mdiclientwin, WM_VSCROLL, SB_PAGEUP, ByVal 0&

      Case vbKeyPageDown
         mdiclientwin = GetWindow(MDIForm1.hwnd, GW_CHILD)
         SendMessage mdiclientwin, WM_VSCROLL, SB_PAGEDOWN, ByVal 0&

      Case vbKeyRight
         mdiclientwin = GetWindow(MDIForm1.hwnd, GW_CHILD)
         SendMessage mdiclientwin, WM_HSCROLL, SB_LINERIGHT, ByVal 0&

      Case vbKeyLeft
         mdiclientwin = GetWindow(MDIForm1.hwnd, GW_CHILD)
         SendMessage mdiclientwin, WM_HSCROLL, SB_LINELEFT, ByVal 0&

   End Select

End Sub

Dále do projektu přidejte MDI formulář a nastavte jej jako startovací objekt projektu. Do formuláře přidejte menu s jednou volbou a na událost Click této položky zapište:

Form1.Show

Spusťte projekt a přesuňte Form1 tak, aby se vytvořili posuvníky na MDI formuláři. Nyní vyzkoušejte kurzorové šipky.

Zpět

Autor: The Bozena