Estoy tratando de colocar mi formulario precisamente encima de la barra de tareas. Lamentablemente, mis esfuerzos se ven obstaculizados por el hecho de que this.Height
en mi formulario devuelve un valor que es 10 píxeles más pequeño que el formulario real (con todos los bordes, barra de título, etc.). Estoy ejecutando Windows 7 con Aero. Cuando Aero se apaga (y los bordes son más delgados), todo funciona como se espera. El estilo de borde de formulario es FixedSingle
. No quiero implementar hacks específicos de Aero. ¿Qué puedo hacer para obtener la altura correcta?¿Cómo determinar el tamaño real del formulario de Windows (con todos los elementos no cliente) cuando se ejecuta Aero?
6
A
Respuesta
8
Sí, Aero miente sobre el tamaño de ventana devuelto por GetWindowRect(). Es un truco de appcompat bastante importante, sin él demasiados programas tendrían un área de cliente demasiado pequeña. Lamentablemente, no hay una llamada de API ni una entrada de manifiesto que se pueda utilizar para desactivar la mentira. La única forma es establecer la versión de Windows en el encabezado EXE y marcarla compatible con Vista.
Puede hacerlo con Editbin.exe en un evento postbuild:
set pathsave=%path%
set path=$(devenvdir);$(devenvdir)..\..\vc\bin
editbin.exe /subsystem:windows,6.0 "$(targetfilename)"
set path=%pathsave%
Mira que el programa no se ejecutará en XP más después de esto.
ACTUALIZACIÓN: Esto se hace ahora por defecto en VS2012 y hasta cuando el destino de .NET 4.5
Cuestiones relacionadas
- 1. ¿Cómo seleccionar todos los elementos del formulario?
- 2. MSI no instala todos los archivos cuando se ejecuta RemovePreviousVersion
- 3. No se puede determinar el tamaño del terminal con ncurses
- 4. cambiar el tamaño y ajustar los controles de formulario según el tamaño del formulario
- 5. stdout.log cuando se ejecuta Apache Tomcat servicio de Windows
- 6. ¿Cómo cambiar automáticamente el tamaño de la cuadrícula cuando se cambia el tamaño del formulario?
- 7. Determinar todos los elementos secundarios ancho
- 8. ¿Cómo verificar si los elementos del formulario no están vacíos?
- 9. Obtener todos los elementos de opciones seleccionados de todos los elementos seleccionados en un formulario
- 10. Necesito recortar todos los elementos en el formulario usando javascript
- 11. ¿Cómo cambia Windows el color Aero Glass?
- 12. Agregue un onBlur a todos los elementos de formulario
- 13. html5 validación de formulario, acción de forma vacía y ejecutar jQuery cuando se validan todos los elementos de formulario html5?
- 14. cuadro de búsqueda del Explorador de Windows en el marco de cristal Aero con WPF
- 15. Determinar el nombre del equipo del cliente
- 16. ¿Cómo se ignoran los directorios cuando se ejecuta Django collectstatic?
- 17. Delphi - Windows Aero recursos
- 18. ¿Se puede determinar el tamaño del archivo que se descargará?
- 19. tamaño de NSImagemage no tamaño real con algunas imágenes?
- 20. obtener todos los elementos de un formulario particular
- 21. El cursor se vuelve de tamaño diagonal cuando el formulario está arriba y a la izquierda del monitor principal
- 22. TFS comprueba automáticamente un formulario de Windows cuando se abre el formulario en VS2010
- 23. ¿Cómo puedo evitar que los elementos Div flotantes se envuelvan cuando se vuelve a clasificar según el tamaño del navegador?
- 24. DrawToBitmap no tomar capturas de pantalla de todos los elementos
- 25. Deshabilitar el cambio de tamaño de un formulario de Windows
- 26. ¿Cómo se ejecuta el código cuando se conectan elementos como jQuery's live() do with events?
- 27. Determinar cuándo terminaron todos los hilos C#
- 28. "No se pudo determinar el formato del URI" con WebRequest
- 29. Recopilar todos los elementos en un formulario en jQuery
- 30. Al animar, ¿cómo se activa la devolución de llamada solo cuando se hacen todos los elementos?
Ay! Bueno, ya que esta es una pequeña utilidad para mi propio uso, supongo que simplemente lo ignoraré. Cualquier otra forma parece demasiada molestia para una imprecisión tan pequeña (excepto simplemente piratear un +10 a mis cálculos). –