Зеркалирование контекста устройства, не связанного с окном


Контексты устройства (DC), которые не связаны с окном, такие как метафайл или DC принтера, не наследуют компоновку, так что Вы должны установить компоновку явно. Чтобы изменить компоновку контекста устройства, используйте функцию SetLayout.

Функция SetLayout редко используется окнами. Как правило, окна получают связанный DC только при обработке сообщения WM_PAINT. Иногда, программа создает DC для окна путем вызова функции GetDC. Или способ, которым установлена начальная компоновка DC, является функция BeginPaint или GetDC согласно флажку окна WS_EX_LAYOUTRTL.

Значения, возвращаемые функциями GetWindowOrgEx, GetWindowExtEx, GetViewportOrgEx и GetViewportExtEx - не затрагиваются вызовом функции SetLayout.

Когда компоновка - RTL, функция GetMapMode возвращает значение MM_ISOTROPIC вместо MM_TEXT. Вызов функции SetMapMode с MM_TEXT будет функционировать правильно; только величина возвращаемого значения от функции GetMapMode будет испорчена. Точно так же вызов функции SetLayout (hdc, LAYOUT_RTL) когда режим отображения является MM_TEXT, заставляет зафиксированный режим отображения измениться на MM_ISOTROPIC.

Назад в оглавление темы
На главную страницу темы

Hosted by uCoz