Шаг 66 - Функция GetDialogBaseUnits()

У диалога свои единицы измерения. Эти единицы зависят от шрифта используемого в диалоге. С помощью функции GetDialogBaseUnits у нас есть возможность получить единицы диалогового окна в пикселах.

LONG GetDialogBaseUnits
(
	VOID
);

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

Для конвертирования единиц измерения диалоговых окон к пикселям нужно применять следующие формулы:

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

И наоборот:

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

Единицы измерения окна зависят от стиля Style, который был установлен при создании окна в шаблоне. Для дочерних панелей диалога координаты связаны с начальными координатами родительского окна, в противном случае панель диалога имеет тип DS_ABSALIGN, тогда координаты связаны с начальными координатами экрана дисплея.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.