· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› MM_HIMETRIC mode в DC окна и принтера

Посл.отвђт Сообщенiе


Дата: Июл 31, 2003 12:35:58

Задавая координаты в сотых мм, при рисовании в окне
я получаю полное соответствие(хоть линейкой мерь).
А в принтере размеры искажаются - они больше ~4 раза.
В чем тут дело?


Дата: Июл 31, 2003 13:05:15

И ещё.
Если в окне правильная ориентация(ось Y направлена вверх и
используем отрицательные числа для ординат точек), то в
принтере их приходится менять на положительные, как в
MM_TEXT моде), хотя SetMapMode(hPrinterDC, MM_HIMETRIC)
возвращает 1(т.е. отработала без ошибки)


Дата: Июл 31, 2003 13:55:06

Единственное объяснение:
Устройство, чей DC используется, берет размер в ММ
делит на свой коэффициент ММ/PIXEL, получает PIXEL'и
и выводит. Для окна же это не делается.
У моего принтера:
int InMM = GetDeviceCaps(hdc, HORZSIZE);
int InPx = GetDeviceCaps(hdc, HORZRES);

InMM = 198
InPx = 4676
т.е.
MM/PIXEL = 0.0423


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.087