Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Работа с данными

Страница: 1 |

 

  Вопрос: Cкролл в DBGRID Добавлено: 12.01.07 15:38  

Автор вопроса:  Lion
Здравствуйте люди!!
help! help! help!
Как сделать скролл в элементе datagrid.
p/s/ использую MS VS6 sp6
best regards> Lion

Thanks/

Ответить

  Ответы Всего ответов: 5  

Номер ответа: 1
Автор ответа:
 mzx



ICQ: 259560026 

Вопросов: 21
Ответов: 143
 Профиль | | #1 Добавлено: 12.01.07 21:10
У меня такой вариант работает:


'В форме с datagrid -----------------------

Private Sub Form_Load()
    Call Hook(Me.hwnd) 'включаем отслеживание
End Sub
    
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Call UnHook(Me.hwnd) 'выключаем отслеживание
End Sub



'В модуле ----------------------------------

Private Declare Function CallWindowProcA Lib "user32" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal MSG As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SetWindowLongA Lib "user32" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowTextA Lib "user32" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Const GWL_WNDPROC = -4
Private Const WM_MOUSEWHEEL = &H20A
Private lpPrevWndProc As Long, Wheel As Integer
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_UP = &H26
Private Const VK_DOWN = &H28

'Скролл мыши в таблице
Function WindowProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
On Error GoTo xErr
    
    If uMsg = WM_MOUSEWHEEL Then
        If wParam = -7864320 Or wParam = -23592960 Or wParam = -15728640 Then
            Call keybd_event(VK_DOWN, 0, 0, 0)
            Call keybd_event(VK_DOWN, 0, KEYEVENTF_KEYUP, 0)
        End If
        If wParam = 7864320 Or wParam = 23592960 Or wParam = 15728640 Then
            Call keybd_event(VK_UP, 0, 0, 0)
            Call keybd_event(VK_UP, 0, KEYEVENTF_KEYUP, 0)
        End If
    Else
        WindowProc = CallWindowProcA(lpPrevWndProc, hwnd, uMsg, wParam, lParam)
    End If

xErr:
End Function

Sub Hook(hwnd As Long)
    lpPrevWndProc = SetWindowLongA(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Sub UnHook(hwnd As Long)
    Call SetWindowLongA(hwnd, GWL_WNDPROC, lpPrevWndProc)
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #2
Добавлено: 13.01.07 21:21
а у меня так
DBGrid1.ScrollBars = 2 'скролинг справа
DBGrid1.ScrollBars = 0 'скролинг отсутствует

Ответить

Номер ответа: 3
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #3 Добавлено: 13.01.07 21:24
2 Боцман: Я так понял, имеется ввиду скроллинг крысой... :)

Ответить

Номер ответа: 4
Автор ответа:
 Боцман



ICQ: 295725312 

Вопросов: 53
Ответов: 830
 Web-сайт: Rus-Skipper.narod.ru
 Профиль | | #4
Добавлено: 13.01.07 22:02
Недопонял, вопроса извеняюсь.

Ответить

Номер ответа: 5
Автор ответа:
 Lion



ICQ: 367220539 

Вопросов: 13
Ответов: 55
 Web-сайт: lammeru.net
 Профиль | | #5
Добавлено: 15.01.07 10:49
mzx Спасибо рабо т а е т !

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам