Red de conocimiento informático - Conocimiento informático - ¿Cómo hacer que el control DATAGRID de VB admita la rueda del mouse?

¿Cómo hacer que el control DATAGRID de VB admita la rueda del mouse?

Primero establezca el estilo del cuadro de selección en el atributo de división de Datagrid en 3, es decir, toda la fila está resaltada, y luego agregue el siguiente código para admitirlo. Simplemente enfoque el mouse en el control de la cuadrícula y gire la rueda del mouse, y la barra de desplazamiento de la cuadrícula se desplazará automáticamente.

Si necesitas un desplazamiento más fluido y personalizado, tengo el código y te lo enviaré cuando llegue el momento, para que puedas estudiarlo tú mismo.

Método de operación de ejemplo:

Escriba el siguiente código en el módulo público.

API que soporta ratón con rueda.

Constante pública GWL_WNDPROC = (-4)

Const pública WM_COMMAND = & ampH111

Const pública WM_MBUTTONDOWN = & ampH207

Public Const WM_MBUTTONUP=&H208

Public Const WM_MOUSEWHEEL=&H20A

Public Oldwinproc As Long

Función de declaración pública SetWindowLong Lib "user32 "Alias" SetWindowLongA "(ByVal hWnd As Long,_

ByVal nIndex tiene la misma longitud, ByVal dwNewLong tiene la misma longitud)

Función de declaración pública CallWindowProc Lib "user32 "Alias" CallWindowProcA "(ByVal lpPrevWndFunc As Long,_

ByVal hWnd es Long, ByVal Msg es Long, ByVal wParam es Long, ByVal lParam es Long)

Función de declaración pública GetWindowLong Lib "user32 "alias" GetWindowLongA "(ByVal hWnd As Long,_

ByVal nIndex tiene la misma longitud)

Función pública FlexScroll(ByVal hWnd es Long, ByVal wMsg es Long, ByVal wParam es Long, ByVal lParam es Long) admite el desplazamiento de la rueda para Long

2004-5-10 15:33

Seleccione el caso wMsg

Caso WM_mouse rueda

Seleccione Case wParam

Case-7864320 'Desplácese hacia abajo.

Enviar clave '{PGDN}'

Caso 7864320 'Enrollado.

SendKeys "{ PGUP }"

Finalizar selección

Finalizar selección

flex scroll = CallWindowProc(Oldwinproc, hWnd, wMsg, wParam , lParam)

Función final

API que admite mouse con rueda.

Escribe el siguiente código en el evento GotFocus del control de tabla.

Control infantil privado name_GotFocus()

oldwinproc = GetWindowLong(me. hwnd, GWL_WNDPROC)

SetWindowLong Me.hWnd, GWL_WNDPROC, dirección FlexScroll

Conector final

Escribe el siguiente código en el evento LostFocus del control de tabla.

Control infantil privado name_LostFocus()

SetWindowLong Me.hWnd, GWL_WNDPROC, Oldwinproc

Conector final