Страница: 1 |
Страница: 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-сайт:
Профиль | | #2
Добавлено: 13.01.07 21:21
а у меня так
DBGrid1.ScrollBars = 0 'скролинг отсутствует
Номер ответа: 3
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #3
Добавлено: 13.01.07 21:24
2 Боцман: Я так понял, имеется ввиду скроллинг крысой...
Номер ответа: 4
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #4
Добавлено: 13.01.07 22:02
Недопонял, вопроса извеняюсь.
Номер ответа: 5
Автор ответа:
Lion
ICQ: 367220539
Вопросов: 13
Ответов: 55
Web-сайт:
Профиль | | #5
Добавлено: 15.01.07 10:49
mzx Спасибо рабо т а е т !