SetGraphicsMode, fonction (wingdi.h)
La fonction SetGraphicsMode définit le mode graphique pour le contexte d’appareil spécifié.
int SetGraphicsMode(
[in] HDC hdc,
[in] int iMode
);
[in] hdc
Handle pour le contexte de l’appareil.
[in] iMode
Mode graphique. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
|
Définit le mode graphique compatible avec Windows 16 bits. Il s’agit du mode par défaut ; Si cette valeur est spécifiée, l’application peut uniquement modifier la transformation monde-appareil en appelant des fonctions qui définissent les extensions et les origines de fenêtre et de fenêtre d’affichage, mais pas à l’aide de SetWorldTransform ou ModifyWorldTransform ; Les appels à ces fonctions échouent. SetViewportExtEx et SetWindowExtEx sont des exemples de fonctions qui définissent des extensions et des origines de fenêtre et de fenêtre d’affichage. |
|
Définit le mode graphique avancé qui autorise les transformations de monde. Cette valeur doit être spécifiée si l’application définit ou modifie la transformation du monde pour le contexte d’appareil spécifié. Dans ce mode, tous les graphiques, y compris la sortie de texte, sont entièrement conformes à la transformation monde-appareil spécifiée dans le contexte de l’appareil. |
Si la fonction réussit, la valeur de retour est l’ancien mode graphique.
Si la fonction échoue, la valeur de retour est égale à zéro.
Il existe trois domaines dans lesquels la sortie graphique diffère selon le mode graphique :
-
Sortie du texte : en mode GM_COMPATIBLE, la sortie de texte TrueType (ou police vectorielle) se comporte de la même façon que la sortie de texte de police raster en ce qui concerne les transformations monde-appareil dans le contrôleur de domaine. Le texte TrueType est toujours écrit de gauche à droite et de droite vers le haut, même si le reste des graphiques est retourné sur l’axe x ou y. Seule la hauteur du texte TrueType (ou police vectorielle) est mise à l’échelle. La seule façon d’écrire du texte qui n’est pas horizontal en mode GM_COMPATIBLE consiste à spécifier un échappement et une orientation différent de zéro pour la police logique sélectionnée dans ce contexte d’appareil.
En mode GM_ADVANCED, la sortie du texte TrueType (ou police vectorielle) est entièrement conforme à la transformation monde-appareil dans le contexte de l’appareil. Les polices raster ont uniquement des fonctionnalités de transformation très limitées (étirement par certains facteurs entiers). L’interface de périphérique graphique (GDI) tente de produire la meilleure sortie possible avec des polices raster pour les transformations non dérivées.
-
Exclusion de rectangle : si le mode graphique par défaut GM_COMPATIBLE est défini, le système exclut les bords inférieur et droit lorsqu’il dessine des rectangles.
Le mode graphique GM_ADVANCED est requis si les applications souhaitent dessiner des rectangles inclus en bas à droite.
-
Dessin d’arc : si le mode graphique par défaut GM_COMPATIBLE est défini, GDI dessine des arcs en utilisant la direction de l’arc actuelle dans l’espace de l’appareil. Avec cette convention, les arcs ne respectent pas les transformations de page à appareil qui nécessitent un retournement le long de l’axe x ou y.
Si le mode graphique GM_ADVANCED est défini, GDI dessine toujours des arcs dans le sens inverse des aiguilles d’une montre dans l’espace logique. Cela équivaut à l’affirmation selon laquelle, dans le mode graphique GM_ADVANCED, les points de contrôle d’arc et les arcs eux-mêmes respectent pleinement la transformation monde-à-appareil du contexte de l’appareil.
Pour obtenir un exemple, consultez Utilisation des espaces de coordonnées et des transformations.
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wingdi.h (inclure Windows.h) |
Bibliothèque | Gdi32.lib |
DLL | Gdi32.dll |
Fonctions d’espace de coordonnées et de transformation
Vue d’ensemble des espaces et transformations de coordonnées
SetViewportExtEx
SetWindowExtEx