Jupiter писал(а):Вопрос: Как программно определить, видна ли верт. или гор. полоса?
Искать в стилях WS_VSCROLL и WS_HSCROLL.
Option Explicit
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As Long) As Long
Dim rc As RECT
Dim hwcl As Long
Private Sub MDIForm_Load()
Form1.Show
hwcl = FindWindowEx(MDIForm1.hwnd, 0, "MDIClient", 0)
End Sub
Private Sub Timer1_Timer()
GetClientRect hwcl, rc
Debug.Print rc.Right
End Sub
Не совсем чтобы так. Размер получается без учета полос прокрутки (как будто их никогда нет).tyomitch писал(а):Но GetClientRect возвращает размеры уже без этих полос, я проверял.
А вот это то что нужно!!! ScaleHeight рулит! С учетом полос!Wolfie писал(а):ScaleHeight вернет размер доступной области
EUGY писал(а):И как писал Темыч:Искать в стилях WS_VSCROLL и WS_HSCROLL.
но не в MDIForm, а в его дочернем окне "MDIClient" (не путать с MDIChild).
Спасибо, дескриптор окна получили. А как теперь найти коэффициент прокрутки и как его менять? (Типа как в VB: VS.Value = 100). СПАСИБО!tyomitch писал(а):FindWindowEx(0,"MDIClient",vbNullString)
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 72