Установка
- Код: Выделить всё
frmMDIMain.HScroll1.LargeChange = frmChild(1).Width
frmMDIMain.HScroll1.SmallChange = frmChild(1).Width
даёт нулевой результат. Где я туплю?
Спасибо
frmMDIMain.HScroll1.LargeChange = frmChild(1).Width
frmMDIMain.HScroll1.SmallChange = frmChild(1).Width
округлять … значение свойства Value, чтобы оно принадлежало … ряду чисел с большим шагом
скачкообразный скролл это по-моему один из худших дизайн-приёмов
А не лучше вместо скролла использовать что-то другое? Например, кнопки со стрелками "туда - сюда"
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_HSCROLL = &H114
Private Const WM_VSCROLL = &H115
Private Const SB_LINEDOWN = 1
Private Const SB_LINEUP = 0
Dim hWndClient As Long
Private frmChild(4) As Form1
Private Sub MDIForm_Load()
hWndClient = FindWindowEx(Me.hwnd, 0, "MDIClient", "")
For i = 1 To 4
Set frmChild(i) = New Form1
With frmChild(i)
.Top = 0
.Height = 13440
.Width = Screen.Width - 60
.Left = frmChild(i).Width * i - frmChild(i).Width
.Tag = i
.Caption = i & " " & frmChild(i).Left
.Show
End With
Next i
End Sub
Private Sub cmdScrollLeft_Click()
SendMessage hWndClient, WM_HSCROLL, SB_LINEUP, 0
End Sub
Private Sub cmdScrollRight_Click()
SendMessage hWndClient, WM_HSCROLL, SB_LINEDOWN, 0
End Sub
Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 85