Отображение и вывод WYSIWYG
Большинство приложений пытаются поддерживать выходные данные WYSIWYG (то, что вы видите, то, что вы получаете). Это означает, что текст, нарисованный полужирным шрифтом Helvetica из 10 точек в окне приложения, должен иметь аналогичный вид при печати. Получение истинных выходных данных WYSIWYG практически невозможно и в большинстве случаев даже нежелательно. Отчасти это обусловлено различиями в технологиях видео и принтеров; пиксель на экране обычно больше точки на обычном лазерном принтере. Расстояния просмотра также различаются; пользователь компьютера обычно сидит примерно в двух футах от экрана, но глаза читателя обычно находятся на одной ноге или меньше от печатной страницы.
Для компенсации различий в удобочитаемости между экранами и печатной страницей система поддерживает единицу, называемую логическим дюймом, который всегда указывается в пикселях. Для видеотрансляции логический дюйм всегда больше физического дюйма, чтобы компенсировать большее расстояние просмотра и (как правило) более грубое разрешение. Для принтеров логический дюйм всегда равен физическому дюйму.
Чтобы получить эффект WYSIWYG при рисовании текста, необходимо решить две связанные проблемы: сделать отдельные символы выглядят одинаково и макет страницы независимо от устройства. Чтобы устранить первую проблему, приложение может использовать функцию CreateFont , чтобы указать имя и размер идеального (или логического) шрифта, а затем вызвать функцию SelectObject для определения контекста устройства дисплея или принтера. Когда приложение вызывает SelectObject , система выбирает физический шрифт, который является наиболее близким к указанному логическому шрифту. Когда система выбирает отображаемый шрифт, она выбирает физический шрифт, который больше фактического размера. Это происходит из-за большего логического дюйма на дисплее. Однако с точки зрения пользователя он очень близок к правильной высоте. Когда система выбирает шрифт для принтера, она выбирает физический шрифт, который фактически является запрошенным размером. Дополнительные сведения о шрифтах и выводе текста см. в разделе Шрифты и текст.
Вторая проблема, связанная с независимым от устройства макетом страницы, может быть решена с помощью метрик TrueType. Это верно даже при сохранении совместимости с 16-разрядными версиями Windows. Дополнительные сведения см. в разделе Использование переносимых метрик TrueType.
Чтобы получить эффект WYSIWYG при рисовании растровой графики, приложение может получить ширину и высоту (в логических дюймах) экрана и печатной страницы. Используя эти значения, приложение может создавать коэффициенты горизонтального и вертикального масштабирования, чтобы сохранить пропорцию растровых изображений при их рисовании на принтере. Дополнительные сведения о растровых изображениях и выходных данных см. в разделе Растровые изображения.