Función SetGraphicsMode (wingdi.h)

La función SetGraphicsMode establece el modo gráfico para el contexto de dispositivo especificado.

Sintaxis

int SetGraphicsMode(
  [in] HDC hdc,
  [in] int iMode
);

Parámetros

[in] hdc

Identificador del contexto del dispositivo.

[in] iMode

Modo gráfico. Este parámetro puede ser uno de los valores siguientes.

Valor Significado
GM_COMPATIBLE
Establece el modo gráfico que es compatible con Windows de 16 bits. Este es el modo predeterminado. Si se especifica este valor, la aplicación solo puede modificar la transformación de mundo a dispositivo llamando a funciones que establecen extensiones y orígenes de ventana y ventanilla, pero no mediante SetWorldTransform o ModifyWorldTransform; Se producirá un error en las llamadas a esas funciones. Algunos ejemplos de funciones que establecen extensiones y orígenes de ventana y ventanilla son SetViewportExtEx y SetWindowExtEx.
GM_ADVANCED
Establece el modo gráfico avanzado que permite transformaciones del mundo. Este valor debe especificarse si la aplicación establecerá o modificará la transformación del mundo para el contexto de dispositivo especificado. En este modo, todos los gráficos, incluida la salida de texto, se ajustan completamente a la transformación del mundo al dispositivo especificada en el contexto del dispositivo.

Valor devuelto

Si la función se realiza correctamente, el valor devuelto es el modo gráfico antiguo.

Si la función no se realiza correctamente, el valor devuelto es cero.

Comentarios

Hay tres áreas en las que la salida de gráficos difiere según el modo gráfico:

  1. Salida de texto: en el modo de GM_COMPATIBLE, la salida de texto TrueType (o fuente vectorial) se comporta de la misma manera que la salida de texto de fuente ráster con respecto a las transformaciones del mundo al dispositivo en el controlador de dominio. El texto TrueType siempre se escribe de izquierda a derecha y derecha hacia arriba, incluso si el resto de los gráficos se voltea en el eje x o y. Solo se escala el alto del texto TrueType (o fuente vectorial). La única manera de escribir texto que no es horizontal en el modo de GM_COMPATIBLE es especificar la orientación y escape distinto de cero para la fuente lógica seleccionada en este contexto de dispositivo.

    En el modo de GM_ADVANCED, la salida de texto TrueType (o fuente vectorial) se ajusta completamente a la transformación del mundo al dispositivo en el contexto del dispositivo. Las fuentes ráster solo tienen capacidades de transformación muy limitadas (estiradas por algunos factores enteros). La interfaz de dispositivo gráfico (GDI) intenta generar la mejor salida que puede con fuentes ráster para transformaciones notriviales.

  2. Exclusión de rectángulo: si se establece el modo gráfico de GM_COMPATIBLE predeterminado, el sistema excluye los bordes inferior y derecho cuando dibuja rectángulos.

    El modo gráfico GM_ADVANCED es necesario si las aplicaciones quieren dibujar rectángulos que son inclusivos de inferior derecha.

  3. Dibujo de arco: si se establece el modo gráfico de GM_COMPATIBLE predeterminado, GDI dibuja arcos mediante la dirección del arco actual en el espacio del dispositivo. Con esta convención, los arcos no respetan las transformaciones de página a dispositivo que requieren un volteo a lo largo del eje x o y.

    Si se establece el modo gráfico GM_ADVANCED, GDI siempre dibuja arcos en la dirección en sentido contrario a las agujas del reloj en el espacio lógico. Esto equivale a la instrucción que, en el modo gráfico de GM_ADVANCED, tanto los puntos de control de arco como los arcos respetan plenamente la transformación del mundo al dispositivo del contexto del dispositivo.

Ejemplos

Para obtener un ejemplo, vea Uso de espacios de coordenadas y transformaciones.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wingdi.h (incluye Windows.h)
Library Gdi32.lib
Archivo DLL Gdi32.dll

Consulte también

Funciones de espacio y transformación de coordenadas

Información general sobre espacios y transformaciones de coordenadas

CreateDC

GetArcDirection

GetDC

GetGraphicsMode

ModifyWorldTransform

SetArcDirection

SetViewportExtEx

SetViewportExtent

SetWindowExtEx

SetWindowExtent

SetWorldTransform