基本介紹
- 外文名:GetDialogBaseUnits
- 函式功能:返回系統的對話基本單位
- 函式原型:LONG GetDialogBaseUnits
- 參數:無
簡介,備註,
簡介
函式功能:該函式返回系統的對話基本單位,該基本單位為系統字型字元的平均寬度和高度。對於使用系統字型的對話框,可以用這些值在對話框模板之間轉換,比如在對話框模板和像素之間。對於不使用系統字型的對話框,從對話框模板單位到像素的轉換要根據對話框使用的字型而定。對於對話框的其中一種類型用MaPDialogRect函式很容易地來執行轉換,MaPDialogRect考慮字型且正確的把一個長方形模板單位轉換為此像素。
函式原型:LONG GetDialogBaseUnits(VOID);
參數:無。
返回值:返回值為一個32位的含有對話基本單位的值。返回值的低位字含有水平對話框基本單位,且高位字含有垂直對話框基本單位。
獲取字型的橫/縱坐標:返回值是一個8位16進制數,高4位存放字型的高度,低4位存放字型的寬度,可以通過以下語句了獲取字型的高和寬
int charH = HIWORD(GetDialogBaseUnits());
int charW = LOWORD(GetDialogBaseUnits());
備註
:GetDialogBaseUnits函式返回的水平基本單位同系統字型中字元以像素為單位的平均寬度相等;垂直基本單位同系統字型中字元的以像素為單位的平均高度相等; 對於一個沒有使用系統字型的對話框基本單位相等於對話框字型字元以像素為單位的平均寬度和平均高度。可以用GetTextMetrics和GetTextExtentPoint32函式為一個選擇的字型來計算這些值。但是,如果計算結果與那些通過系統執行的值不同,那么可以用MapDialogRect函式避免可能發生的錯誤。每一個水平基本單位同四個水平對話框模板單位相等;每一個垂直基本單位同八個垂直對話框模板單位相等。所以用下列公式來把對話框模板單位轉換為像素:
PiselX=(temptateunitX★baseunitX)/4;PiseIY=(templateunitY★baseunitY)/8
同樣地.用下列公式來把像素轉換為對話框模板單位:templateunitX=(pixelX★4)/baseunitX;templateunitY=(plxelY★8)/baseunitY
Windows CE:Windows CE不支持此函式的任何一個擴展的錯誤值。
速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows:1.0及以上版本;頭檔案:Winuser.h;庫檔案:user32.lib