winuser.h


GetSystemMetrics

La función GetSystemMetrics recupera varios valores de medidas y de parámetros de configuración del sistema.

Las medidas del sistema son las dimensiones (anchura y altura) de elementos del display de Windows. Todas las dimensiones recuperadas por GetSystemMetrics se expresan en pixels.

Sintaxis

int GetSystemMetrics(
    int nIndex  // medida de sistema o parámetro de configuración a recuperar
   );

Parámetros:

nIndex: especifica la medida de sistema o parámetro de configuración a recuperar. Todos los valores SM_CX* son anchuras. Todos los valores SM_CY* son alturas. Se definen los siguientes valores:

Valor Significado
SM_ARRANGE banderas que especifican el modo en que el sistema organiza los iconos minimizados. Para más detalles sobre ventans minimizadas, ver la sección de observaciones.
SM_CLEANBOOT Valor que especifica cómo se inició el sistema:
  • 0 Arranque normal
  • 1 Arranque a prueba de fallos
  • 2 Arranque a prueba de fallos con red
El arranque a prueba de fallos (también llamado arranque seguro SafeBoot) ignora los ficheros de arranque del usuario.
SM_CMOUSEBUTTONS Número de botones en el ratón, o cero si el ratón no está instalado.
SM_CXBORDER, SM_CYBORDER Anchura y altura, en pixels, del borde de una ventana. Es equivalente al valor SM_CXEDGE para ventanas con aspecto 3-D.
SM_CXCURSOR, SM_CYCURSOR Anchura y altura, en pixels, de un cursor. Estas son las dimensiones del cursor soportadas por el driver del display actual. El sistema no puede crear cursores de otros tamaños.
SM_CXDLGFRAME, SM_CYDLGFRAME Lo mismo que SM_CXFIXEDFRAME y SM_CYFIXEDFRAME.
SM_CXDOUBLECLK, SM_CYDOUBLECLK Anchura y altura, en pixels, del rectángulo alrededor del primer clic en una secuencia de doble clic. El segundo clic debe producirse dentro de ese rectángulo para que el sistema considere los dos clics como un doble clic. (Ambos clics deben producirse también en un tiempo especificado.)
SM_CXDRAG, SM_CYDRAG Anchura y altura, en pixels, de un rectángulo centrado en un punto de arrastre (drag) para permitir un movimiento limitado del ratón antes de que comience una operación de arrastre. Esto permite al usuario hacer un clic y soltar el botón del ratón sin empezar una operación de arrastre inadvertidamente.
SM_CXEDGE, SM_CYEDGE Dimensiones, en pixels, de un borde 3-D. Son los equivalentes 3-D de SM_CXBORDER y SM_CYBORDER.
SM_CXFIXEDFRAME, SM_CYFIXEDFRAME Grosor, en pixels, del marco alrededor del perímetos de una ventana que que tiene un título, pero no puede cambiar de tamaño. SM_CXFIXEDFRAME es la anchura del borde horizontal y SM_CYFIXEDFRAME es la altura del borde vertical. Lo mismo que SM_CXDLGFRAME y SM_CYDLGFRAME.
SM_CXFRAME, SM_CYFRAME Lo mismo que SM_CXSIZEFRAME y SM_CYSIZEFRAME.
SM_CXFULLSCREEN, SM_CYFULLSCREEN Anchura y altura del área de cliente de una ventana de pantalla completa. Para obtener las coordenadas de la porción de pantalla no ocultada por la barra, llamar a la función SystemParametersInfo con el valor SPI_GETWORKAREA.
SM_CXHSCROLL, SM_CYHSCROLL Anchura, en pixels, del mapa de bits de la flecha en una barra de desplazamiento horizontal; y altura, en pixels, de una barra de desplazamiento horizontal.
SM_CXHTHUMB Anchura, en pixels, de la caja thumb en una barra de desplazamiento horizontal.
SM_CXICON, SM_CYICON Anchura y altura por defecto, en pixels, de un icono. Estos valores son normalmente 32x32, pero pueden variar dependiendo del hardware de visualización instalado. La función LoadIcon sólo puede cargar iconos de esas dimensiones.
SM_CXICONSPACING, SM_CYICONSPACING Dimensiones, en pixels, de una celda en una cuadrícula para items en una vista de iconos grande. Cada ítem se coloca en un rectángulo de ese tamaño cuando se ordenan. Estos valores son siempre mayores o iguales que SM_CXICON y SM_CYICON.
SM_CXMAXIMIZED, SM_CYMAXIMIZED Dimensiones por defecto, en pixels, de una ventana de nivel máximo maximizada.
SM_CXMAXTRACK, SM_CYMAXTRACK Dimensiones máximas por defecto, en pixels, de una ventana que tiene barra de título y que tiene bordes que permiten cambiar el tamaño. El usuario no puede arrastrar el borde de la ventana a un tamaño mayor que estas dimensiones. Una ventana puede ignorar estos valores procesando el mensaje WM_GETMINMAXINFO.
SM_CXMENUCHECK, SM_CYMENUCHECK Dimensiones, en pixels, de mapa de bits de la marca (V) del menú por defecto.
SM_CXMENUSIZE, SM_CYMENUSIZE Dimensiones, en pixels, de los botones de la barra de menú, como los botones de cerrar ventans hijas en ventanas de múltiples documentos (MDI).
SM_CXMIN, SM_CYMIN Anchura y altura mínimas, en pixels, de una ventana.
SM_CXMINIMIZED, SM_CYMINIMIZED Dimensiones, en pixels, de una ventana normal minimizada.
SM_CXMINSPACING, SM_CYMINSPACING Dimensiones, en pixels, de una celda en una cuadrícula para ventanas minimizadas. Cada ventana minimizada ítem se coloca en un rectángulo de ese tamaño cuando se ordenan. Estos valores son siempre mayores o iguales que SM_CXMINIMIZED and SM_CYMINIMIZED.
SM_CXMINTRACK, SM_CYMINTRACK Anchura y altura de trazado mínimas, en pixels, de una ventana. El usuario no puede arrastrar el borde de la ventana a un tamaño menor que estas dimensiones. Una ventana puede ignorar estos valores procesando el mensaje WM_GETMINMAXINFO.
SM_CXSCREEN, SM_CYSCREEN Anchura y altura, en pixels, de la pantalla.
SM_CXSIZE, SM_CYSIZE Anchura y altura, en pixels, de un botón dentro de la zona de captura o barra de título de una ventana.
SM_CXSIZEFRAME, SM_CYSIZEFRAME Espesor, en pixels, del borde de cambia de tamaño alrededor del perímetro de una ventana que puede ser cambiada de tamaño. SM_CXSIZEFRAME es la anchura del borde horizontal y SM_CYSIZEFRAME es la altura del borde vertical. Lo mismo que SM_CXFRAME y SM_CYFRAME.
SM_CXSMICON, SM_CYSMICON Dimensiones recomendadas, en pixels, de un icono pequeño. Los iconos pequeños aparecen normalmente en la zona de captura de las ventanas y en las visatas de iconos pequeños.
SM_CXSMSIZE, SM_CYSMSIZE Dimensiones, en pixels, de los botones pequeños en zonas de captura.
SM_CXVSCROLL, SM_CYVSCROLL Anchura, en pixels, de una barra de desplazamiento vertical; y altura, en pixels, del mapa de bits de la flecha en una barra de desplazamiento vertical.
SM_CYCAPTION Altura, en pixels, del área de capura normal.
SM_CYKANJIWINDOW Para versiones de Windows de conjuntos de caracteres de doble byte, altura, en pixels, de la ventana Kanji en la parte inferior de la pantalla.
SM_CYMENU Altura, en pixels, de una barra de mení de una línea.
SM_CYSMCAPTION Altura, en pixels, para una barra de captura pequeña.
SM_CYVTHUMB Altura, en pixels, de la caja thumb de una barra de desplazamiento vertical.
SM_DBCSENABLED TRUE o distinto de cero, si la versión del conjunto de caracteres de doble byte (DBCS) de USER.EXE está instalada; FALSE, o cero en caso contrario.
SM_DEBUG TRUE o distinto de cero si la versión de depuración de USER.EXE estña instalada; FALSE, o cero, en caso contrario.
SM_MENUDROPALIGNMENT TRUE, o distinto de cero si los menús desplegables están alineados respecto a la derecha del ítem correspondiente de la barra de menú; FALSE, o cero si están alineados a la izquierda.
SM_MIDEASTENABLED TRUE si el sistema permite lenguajes de tipo Hebreo/Arabico.
SM_MOUSEPRESENT TRUE o distinto de cero si está instalado un ratón; FALSE, o cero, en caso contrario.
SM_MOUSEWHEELPRESENT Sólo en Windows NT: TRUE o distinto de cero si está instalado un ratón con rueda; FALSE, o cero, en caso contrario.
SM_NETWORK El bít de menor peso está activo si hay una red presente; en caso contrario está inactivo. El resto de los bits están reservados para uso futuro.
SM_PENWINDOWS TRUE o distinto de cero si las extensiones de Microsoft Windows para cálculos de Pluma están instalados; cero, o FALSE, en caso contrario.
SM_SECURE TRUE si hay seguridad presente, FALSE si no.
SM_SHOWSOUNDS TRUE o distinto de cero si el usuario necesita una aplicación para presentar información visualmente en situaciones donde de otro modo se presentaría sólo de forma sonora; FALSE, o cero, en caso contrario.
SM_SLOWMACHINE TRUE si el ordenador tiene un procesador lento, FALSE en caso contrario.
SM_SWAPBUTTON TRUE o distinto de cero si el significado de los botones izquiedo y derecho del ratón están intercambiados; FALSE, o cero, en caso contrario.

Valor de retorno

Si la función tiene éxito, el valor de retorno es la medida de sistema o valor de configuración pedido.

Si la función falla, el valor de retorno es cero. GetLastError no proporciona información adicional sobre el motivo del error.

Observaciones

Las medidas del sistema pueden cambiar de un display a otro.

El valor SM_ARRANGE especifica el modo en que el sistema ordena las ventanas minimizadas, y consiste en una posición de comienzo y en una dirección. La posición de comienzo puede ser uno de los siguientes valores:

Valor Significado
ARW_BOTTOMLEFT Empezar en la esquina inferior izquierda de la pantalla (posición por defecto).
ARW_BOTTOMRIGHT Empezar en la esquina inferior derecha de la pantalla. Equivale a ARW_STARTRIGHT.
ARW_HIDE Ocultar ventanas minimizadas moviéndolas fuera de la parte visible de la pantalla.
ARW_TOPLEFT Empezar en la esquina superior izquierda de la pantalla. Equivale a ARV_STARTTOP.
ARW_TOPRIGHT Empezar en la esquina superior derecha de la pantalla. Equivale a ARW_STARTTOP | SRW_STARTRIGHT.

La dirección en que se colocan puede ser uno de los siguientes valores:

Valor Significado
ARW_DOWN Ordenar verticalmente, de arriba a abajo.
ARW_LEFT Ordenar horizontalmente, de izquierda a derecha.
ARW_RIGHT Ordenar horizontalmente, de derecha a izquierda.
ARW_UP Ordenar verticalmente, de abajo a arriba.