Функция GetDialogBaseUnits


Функция GetDialogBaseUnits извлекает системные базовые единицы измерения диалогового окна , которые равняются средней ширине и высоте символов в системном шрифте. Для диалоговых окон, которые используют системный шрифт, Вы можете использовать эти значения, чтобы сделать преобразования из единиц измерения шаблона диалогового окна, которые определяются в нем, в пиксели. Для диалоговых окон, которые не используют системный шрифт, преобразование единиц измерения шаблона диалогового окна в пиксели зависит от шрифта, используемого блоком диалога.

Для любого типа диалогового окна более легко использовать функцию MapDialogRect, чтобы выполнить это преобразование. MapDialogRect принимает во внимание шрифт и правильно преобразует прямоугольник из единиц измерения шаблона диалогового окна в пиксели.

Синтаксис

LONG GetDialogBaseUnits(VOID);

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

Функция возвращает базовые единицы измерения диалогового окна. Младшее слово возвращаемого значения содержит горизонтальную, а старшее слово - вертикальную базовую единицу измерения блока диалога. 

Замечания

Горизонтальная базовая единица измерения, возвращенная GetDialogBaseUnits равна средней ширине символов в системном шрифте, в пикселях; вертикальная базовая единица измерения равна высоте шрифта, в пикселях.

Для диалогового окна, которое не использует системный шрифт, базовые единицы измерения - средняя ширина и высота символов в шрифте диалогового окна, в пикселях. Вы можете использовать функции GetTextMetrics и GetTextExtentPoint32, чтобы вычислить эти значения для выбранного шрифта. Однако, используя функцию MapDialogRect, Вы можете избежать ошибок, которые могут произойти, если ваши вычисления отличаются от выполненных системой.

Каждая горизонтальная базовая единица измерения равна 4 горизонтальным единицам измерения шаблона диалогового окна; каждая вертикальная базовая единица измерения равна 8 вертикальным единицам измерения шаблона диалогового окна. Поэтому, чтобы преобразовать единицы измерения шаблона диалогового окна в пиксели, используйте нижеследующие формулы:

pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);

Точно так же, чтобы преобразовать пиксели в единицы измерения шаблона диалогового окна, используйте нижеследующие формулы:

 
templateunitX = MulDiv(pixelX, 4, baseunitX);
templateunitY = MulDiv(pixelY, 8, baseunitY);

Пример

Пример, см. статью Использование комбинированного окна.

Смотри также 

Обзор Диалоговые окнаФункции, используемые диалоговыми окнами, MapDialogRect

Размещение и совместимость GetDialogBaseUnits

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

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

Hosted by uCoz