int SetMapMode(hdc, fnMapMode) | |||||
HDC hdc; | /* handle of device context | */ | |||
int fnMapMode; | /* new map mode | */ |
The SetMapMode function sets the mapping mode of the specified device context. The mapping mode defines the unit of measure used to transform page-space units into device-space units, and also defines the orientation of the device's x and y axes.
hdc
Identifies the device context.
fnMapMode
Specifies the new mapping mode. It can be any one of the following values:
Value | Meaning |
MM_ANISOTROPIC | ||
Logical units are mapped to arbitrary units with arbitrarily scaled axes. The SetWindowExtEx and SetViewportExtEx functions must be used to specify the desired units, orientation, and scaling. | ||
MM_HIENGLISH | ||
Each logical unit is mapped to 0.001 inch. Positive x is to the right; positive y is up. | ||
MM_HIMETRIC | ||
Each logical unit is mapped to 0.01 millimeter. Positive x is to the right; positive y is up. | ||
MM_ISOTROPIC | ||
Logical units are mapped to arbitrary units with equally scaled axes; that is, one unit along the x-axis is equal to one unit along the y-axis. The SetWindowExtEx and SetViewportExtEx functions must be used to specify the desired units and the orientation of the axes. GDI makes adjustments as necessary to ensure that the x and y units remain the same size (e.g. If you set the window extent, the viewport will be adjusted to keep the units isotropic). | ||
MM_LOENGLISH | ||
Each logical unit is mapped to 0.01 inch. Positive x is to the right; positive y is up. | ||
MM_LOMETRIC | ||
Each logical unit is mapped to 0.1 millimeter. Positive x is to the right; positive y is up. | ||
MM_TEXT | ||
Each logical unit is mapped to one device pixel. Positive x is to the right; positive y is down. | ||
MM_TWIPS | ||
Each logical unit is mapped to one twentieth of a printer's point (1/1440 inch). Positive x is to the right; positive y is up. |
If the function is successful, the return value identifies the previous map mode. Otherwise it is zero.
The MM_TEXT mode allows applications to work in device pixels, whose size varies from device to device.
The MM_HIENGLISH, MM_HIMETRIC, MM_LOENGLISH, MM_LOMETRIC, and MM_TWIPS modes are useful for applications that need to draw in physically meaningful units (such as inches or millimeters).
The MM_ISOTROPIC mode ensures a 1:1 aspect ratio.
The MM_ANISOTROPIC mode allows the x and y coordinates to be adjusted independently.
GetMapMode, SetViewportExtEx, SetWindowExtEx