SetGraphicsMode
The SetGraphicsMode
function sets the graphics mode for the specified device context.
int SetGraphicsMode(
HDC hdc, |
// handle of the
device context |
int iMode |
// graphics mode |
); |
|
Parameters
hdc
Identifies
the device context.
iMode
Specifies the
graphics mode. This parameter can be one of the following values:
Value |
Meaning |
GM_COMPATIBLE |
Sets the
graphics mode that is compatible with Windows version 3.1. This is the
default mode. If this value is specified, the application can only modify the
world-to-device transform by calling functions that set window and viewport
extents and origins, but not by using SetWorldTransform |
GM_ADVANCED |
Windows
NT: Sets the advanced graphics mode
that allows world transformations. This value must be specified if the
application will set or modify the world transformation for the specified
device context. In this mode all graphics, including text output, fully
comforms to the world-to-device transformation specified in the device
context. Windows
95: The GM_ADVANCED value is not
supported. When playing enhanced metafiles, Windows 95 does its best to
ensure that enhanced metafiles on Windows 95 look the same as they do on
Windows NT. To accomplish this, Windows 95 may simulate GM_ADVANCED mode when
playing specific enhanced metafile records. |
Return Values
If the
function succeeds, the return value is the old graphics mode.
If the
function fails, the return value is zero.
Remarks
There are
three areas in which graphics output differs according to the graphics mode:
1. Text Output: In the GM_COMPATIBLE mode,
TrueType (or vector font) text output behaves much the same way as raster font
text output with respect to the world-to-device transform in the DC. The
TrueType text is always written from left to right and right side up, even if
the rest of the graphics will be flipped in the x or y axis. Only the height of
the TrueType (or vector font) text is scaled appropriately. The only way to
write nonhorizontal text in the GM_COMPATIBLE mode is to specify nonzero
escapement and orientation for the logical font selected in this device
context.
In the GM_ADVANCED mode, TrueType (or vector font) text output fully
conforms to the world-to-device transform in the device context. The raster
fonts only have very limited transformation capabilities (stretching by some
integer factors). Graphics device interface (GDI) tries to produce the best
output it can with raster fonts for non-trivial transforms.
2. Rectangle Exclusion: If the default
GM_COMPATIBLE graphics mode is set, the system excludes bottom and rightmost
edges when it draws rectangles.
The GM_ADVANCED graphics mode is required if applications want to draw
rectangles that are bottom-right inclusive.
3. Arc Drawing: If the default GM_COMPATIBLE
graphics mode is set, GDI draws arcs using the current arc direction in the
device space. With this convention, arcs do not respect page-to-device
transforms that require a flip along the x or y axis.
If the GM_ADVANCED graphics mode is set, GDI always draws arcs in the
counterclockwise direction in logical space. This is equivalent to the
statement that, in the GM_ADVANCED graphics mode, both arc control points and
arcs themselves fully respect the device context s world-to-device transform.
See Also