Quiero comprobar si la ventana de una aplicación externa tiene la barra de desplazamiento vertical u horizontal visible usando el HWND (identificador) de la ventana, ¿existe alguna función de WinApi para obtener esta información? Realmente intento la función GetScrollInfo
, pero parece que no recupero información sobre la visibilidad de las barras de desplazamiento.¿Cómo puedo verificar si una ventana tiene barras de desplazamiento visibles usando su HWND?
7
A
Respuesta
16
¿Qué hay de GetScrollBarInfo
con OBJID_HSCROLL
o OBJID_VSCROLL
Si idObject es OBJID_CLIENT y la ventana especificada por hwnd no es un control de barra de desplazamiento del sistema, el sistema envía el mensaje SBM_GETSCROLLBARINFO a la ventana para obtener la barra de desplazamiento información. Esto permite que GetScrollBarInfo funcione en un control personalizado que imita una barra de desplazamiento. Si la ventana no maneja el mensaje SBM_GETSCROLLBARINFO, la función GetScrollBarInfo falla.
Puede probar rgstate
en la estructura SCROLLBARINFO
, hay una bandera STATE_SYSTEM_INVISIBLE
allí.
Otra forma posible es poner a prueba GetWindowLong(hWnd, GWL_STYLE) and (WS_HSCROLL or WS_VSCROLL) <> 0
Cuestiones relacionadas
- 1. Verifique si un iframe tiene barras de desplazamiento visibles?
- 2. ¿Cómo puedo saber si una ventana tiene foco? (API Win32)
- 3. ¿Cómo implemento arrastrando una ventana usando su área de cliente?
- 4. ¿Cómo puedo obtener las ventanas secundarias de una ventana dado su HWND?
- 5. Rieles: ¿Cómo puedo verificar si una columna tiene un valor?
- 6. ¿Cómo puedo verificar si mi aplicación tiene foco?
- 7. ¿Cómo puedo desactivar las barras de desplazamiento de una página?
- 8. ¿Cómo puedo verificar si una cadena tiene al menos un número usando Ruby?
- 9. ¿Las barras de desplazamiento solo son visibles cuando una Div está suspendida?
- 10. ¿Cómo puedo verificar si una URL es absoluta usando Python?
- 11. ¿Cómo puedo saber si un hWnd determinado sigue siendo válido?
- 12. Cómo hacer que las barras de desplazamiento de listview sean visibles todo el tiempo
- 13. ¿Cómo puedo verificar si mi programa tiene datos conectados
- 14. Para saber si un div tiene una barra de desplazamiento
- 15. Cómo puedo obtener barras de desplazamiento en Picturebox
- 16. Cómo verificar si una ventana de OpenCV está cerrada
- 17. ¿Cómo puedo detectar si la ventana realmente cambió de tamaño en el modo de estándares IE8?
- 18. iOS: ¿cómo verificar si una cadena tiene solo dígitos?
- 19. ¿Cómo verificar si un modelo tiene una determinada columna/atributo?
- 20. Verificar filas visibles en un WGD DataGrid
- 21. ¿Cómo puedo verificar si un elemento tiene elementos secundarios usando jquery?
- 22. ¿Cómo puedo verificar si existe un archivo usando Emacs Lisp?
- 23. ¿Cómo puedo verificar si un parámetro de plantilla tiene una potencia de dos?
- 24. Incrustar HWND en proceso externo usando SetParent
- 25. Cómo cambiar el propietario de una ventana usando su identificador
- 26. Cómo obtener hWnd de la ventana abierta por ShellExecuteEx .. hProcess?
- 27. ¿Cómo comprobar si existe una ventana hija?
- 28. Barras de desplazamiento ocultas en Lion. ¿Cómo se desplazan las personas horizontalmente si no están usando un panel táctil?
- 29. jqGrid con altura automática; pero tiene una altura máxima y barras de desplazamiento
- 30. ¿Cómo puedo verificar si hay una URL abierta en otra ventana?
parece prometedor, pero no funciona con las ventanas de Internet Explorer o aplicaciones Explorer.exe (Windows 7) – Salvador
Creo que 'Explorer.exe' contiene el controla 'SysTreeView32' y' SysListView32' (ambos devuelven 'WS_HSCROLL' o' WS_VSCROLL' válidos) con 'GetWindowLong'. Yo uso Spy ++ para confirmar los estilos de ventana. no hizo la prueba con 'GetScrollBarInfo' sin embargo. – kobik