Интерфейс графических устройств, страница 10

Таблица 12. 14. Значения параметра nMapMode функции SetMapMode

MM_HENGLJSH

с произвольно масштабируемыми осями. Для указания единиц длины, ориентации и масштабирования применяются функции SetWindowExtEx и SetViewportExtEx. Каждая логическая единица длины отображается в 0,001 дюйма. Положительные значения х отсчитываются вправо; положительные значения у — вверх.

MM_HMET1UC

Положительные значения х отсчитываются вправо; положительные значения у — вверх. Логические единицы длины отображаются в произвольные единицы длины с одинаково масштабируемыми осями. Для указания нужных единиц длины и необходимой ориентации осей применяются функции SetWindowExtEx и SetViewportExtEx. По мере необходимости выполняются корректировки для достижения одинаковых значений единиц длины х и у.Каждая логическая единица длины отображается в 0,01 дюйма. Положительные значения х отсчитываются вправо; положительные значения у — вверх. Каждая логическая единица длины отображается в 0,1 мм. Положительные значения х отсчитываются вправо; положительные значения у — вверх. Каждая логическая единица длины отображается в один пиксель устройства. Положительные значения х отсчитываются вправо;

MM_SOTROPIC

MM_OENGLISH

MM_OMETRIC

MM_TEXT

iMode

int. Этот параметр должен иметь значение GM_COMPATIBLE для установки совместимого графического режима; в ином случае он должен иметь значение GM_ADVANCED для установки расширенного графического режима.

Возвращаемое значение

int. В случае успешного выполнения функции возвращаемое значение — прежний графический режим; в ином случае возвращаемое значение —

Включаемый файл

wingdi.h

См. также

GetGraphicsMode

SetMapMode                           • Windows 98   • Windows 2000

Описание        

Функция SetMapMode устанавливает режим отображения контекста устройства (DC). Режим отображения определяет единицу измерения, применяемую для преобразования единиц измерения в пространстве страницы в единицы измерения в пространстве устройства. Режим отображения определяет также ориентацию осей х и у устройства.

Синтаксис

hit SetMapMode( HDC HOC, hit nMapMode )

Параметры hDC

HDC. Дескриптор контекста устройства.

nMapMode

int. Новый режим отображения. Этот параметр может иметь одно из даа-чений, перечисленных в табл. 12.14.

Значение

Описание

MM_TWIPS

Каждая логическая единица длины отображается в одну двадцатую пункта принтера (в единицу длины, равную 1/1440 дюйма, которую иногда называют также "twip"). Положительные значения X отсчитываются вправо; положительные значения у — вверх.

Возвращаемое значение

int. В случае успешного выполнения — предыдущий режим отображения; в ином случае возвращаемое значение — 0.

Включаемыйфайл

wingdi.h

См. также

SetWindowExtEx, SetViewportExtEx, GetMapMode

Пример

В следующем примере, показанном на рис. 12.7, создается окно с приватным контекстом устройства. Приложение устанавливает режим отображения MM_ISOTROPIC во время запуска (при получении сообщения  WM_CREATE). Путем вызова функций SetWindowExtEx и SetViewportExtEx устанавливается постоянное масштабирование, которое приравнивает две логических единицы длины к одной единице длины устройства (коэффициент масштабирования равен 200 процентов). Когда пользователь выбирает пункт меню Test!, на экране появляются две линии.  Одна линия выводится  в режиме отображения MM_ISOTROPIC, другая — в режиме MMJTEXT. Обратите внимание, что линия, которая выведена в режиме   MM_ISOTROPIC, в два раза длиннее. Это связано с тем, что при запуске приложения установлен такой коэффициент масштабирования.

SetMapperFlags                         • Windows 98   • Windows 2000

Описание

Функция  SetMapperFlags устанавливает алгоритм, применяемый средством отображения шрифтов при отображении логических шрифтов в физические. При интерполяции, необходимой для определения размеров и коэффициентов сжатия указанного шрифта, не описанных в данных шрифта, обычно применяются функции CreateFont и CreateFontlndirect. Чтобы вынудить систему использовать ближайший подходящий шрифт или разрешить интерполяцию, применяется функция SetMapperFlags.

Синтаксис

DWORD SetMapperFlags( HDC hDC, DWORD dwFlag )

Параметры

hDC

HDC. Дескриптор контекста устройства, который содержит флажок средства отображения шрифтов.

dwFlag

DWORD. Если бит установлен равным 0, средство отображения выбирает только полностью соответствующие шрифты; в ином случае допускается интерполяция.

Возвращаемое значение

DWORD. В случае успешного выполнения, возвращаемое значение — предыдущее значение флажка средства отображения шрифтов; в ином случае возвращаемое значение — GDI_ERROR

Включаемый файл

wingdi.h

См. также

CreateFont, CreateFontlndirect, GetAspectRatioFilterEx

Пример

См. пример для функции CreateFont.

SetViewportExtEx                       • Windows 98   • Windows 2000

Описание

Функция SetViewportExtEx устанавливает горизонтальный и вертикальный экстенты области просмотра для контекста устройства (DC).

Синтаксис

BOOL SetViewportExtEx( HDC hDC, int nXExtent, int nYExtent, LPSIZE IpSize )

Параметры

hDC

HDC. Дескриптор контекста устройства.

nXExtent

int. Горизонтальный экстент области просмотра в единицах длины устройства.

nYExtent

int. Вертикальный экстент области просмотра в единицах длины устройства.

IpSize

LPSIZE. Указатель на структуру SIZE, которая принимает значения предыдущих экстентов области просмотра, заданные в единицах длины устройства. Если параметр IpSize равен NULL, функция не возвращает предыдущие экстенты области просмотра.

Возвращаемое значение

BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

wingdi.h

См. также

GetViewportExtEx, ScaleViewportExtEx, SetViewportOrgEx

Пример

См. пример для функции SetMapMode.

SetViewportOrqEx                       • Windows 98   • Windows 2000

Описание

Функция SetViewportOrgEx устанавливает начало координат области просмотра контекста устройства (DC).

Синтаксис

BOOL SetViewportOrgEx( HDC hDC, int X, int Y, LPPOINT IpPoint)

Параметры

hDC

HDC. Дескриптор контекста устройства.

X

int. Координата х нового начала координат области просмотра в единицах длины устройства.

Y

int. Координата у нового начала координат области просмотра в единицах длины устройства.

IpPoint

LPPOINT. Указатель на структуру POINT, которая принимает предыдущее значение начала координат области просмотра в координатах устройства. Если параметр IpPoint равен NULL, функция не возвращает предыдущее значение начала координат области просмотра.

Возвращаемое значение

BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

wingdi.h

См. также

GetViewportOrgEx

Пример

См. пример для функции GetViewportOrgEx.

SetWindowExtEx                        • Windows 98   • Windows 2000

Описание

Функция SetWindowExtEx устанавливает горизонтальный и вертикальный экстенты окна для контекста устройства (DC).

Синтаксис

BOOL SetWindowExtEx( HDC hDC, int nXExtent, int nYExtent, LPSIZE IpSize )

Параметры

hDC

HDC. Дескриптор контекста устройства.

nXExtent

int. Горизонтальный экстент в логических единицах длины.

nYExtent

int. Вертикальный экстент в логических единицах длины.

IpSize

LPSIZE. Указатель на структуру SIZE, которая принимает предыдущие значения экстентов окна в логических единицах длины. Если параметр IpSize равен NULL, функция не возвращает предыдущие экстенты окна.

Возвращаемое значение

BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

wingdi.h

См. также

SetWindowOrgEx, SetViewportExtEx, GetWindowOrgEx

Пример

См. пример для функции SetMapMode.

SetWindowOrgEx                       • Windows 98   • Windows 2000

Описание

Функция SetWindowOrgEx устанавливает начало координат окна контекста устройства (DC).

Синтаксис

BOOL SetWindowOrgEx( HDC hDC, int X, int Y, LPPOINT IpPoint )

Параметры

hDC

HDC. Дескриптор контекста устройства.

X

int. Логическая координата х нового начала координат окна.

Y

int. Логическая координата у нового начала координат окна.

IpPoint

LPPOINT. Указатель на структуру POINT, которая принимает предыдущее значение начала координат окна. Если параметр IpPoint равен NULL, функция не возвращает предыдущее значение' начала координат.

Возвращаемое значение

BOOL. В случае успешного выполнения — TRUE; в ином случае возвращаемое значение — FALSE.

Включаемый файл

wingdi.h

См. также

GetWindowOrgEx, SetWindowExtEx

Пример

См. пример для функции GetViewportOrgEx.

WindowFromDC                         • Windows 98   • Windows 2000

Описание

Функция WindowFromDC возвращает дескриптор окна, связанного с контекстом устройства отображения (DC).

Синтаксис

HWND WindowFromDC( HDC hDC )

Параметры

hDC

HDC. Дескриптор контекста устройства, из которого должен быть получен дескриптор связанного с ним окна.

Возвращаемое значение

HWND. В случае успешного выполнения — дескриптор окна, связанного с контекстом устройства отображения; в ином случае возвращаемое значение — - NULL.

Включаемый файл

winuser.h

См. также

GetDC

Пример

В следующем примере показано применение функции WindowFromDC для определения дескриптора окна, которому принадлежит контекст устройства.

VOID Paintlmage( HDC hDC ){ HWND hWnd =  WindowFromDC (   hDC  ) ;//  Очистить  клиентскую область  перед выводом. //...................... InvalidateRect( hWnd, NULL,  TRUE ) ; DpdateWindow( hWnd ) ;                                                                                                        ,//  Выполнить  вывод   ...