Função GetDialogBaseUnits (winuser.h)

Recupera as unidades base da caixa de diálogo do sistema, que são a largura média e a altura dos caracteres na fonte do sistema. Para caixas de diálogo que usam a fonte do sistema, você pode usar esses valores para converter entre unidades de modelo de caixa de diálogo, conforme especificado em modelos de caixa de diálogo e pixels. Para caixas de diálogo que não usam a fonte do sistema, a conversão de unidades de modelo de caixa de diálogo em pixels depende da fonte usada pela caixa de diálogo.

Para qualquer tipo de caixa de diálogo, é mais fácil usar a função MapDialogRect para executar a conversão. MapDialogRect leva a fonte em conta e converte corretamente um retângulo de unidades de modelo de caixa de diálogo em pixels.

Sintaxe

long GetDialogBaseUnits();

Retornar valor

Tipo: LONG

A função retorna as unidades base da caixa de diálogo. A palavra de baixa ordem do valor retornado contém a unidade base da caixa de diálogo horizontal e a palavra de alta ordem contém a unidade base da caixa de diálogo vertical.

Comentários

A unidade base horizontal retornada por GetDialogBaseUnits é igual à largura média, em pixels, dos caracteres na fonte do sistema; a unidade base vertical é igual à altura, em pixels, da fonte.

A fonte do sistema será usada somente se o modelo da caixa de diálogo não especificar uma fonte. A maioria dos modelos de caixa de diálogo especifica uma fonte; Como resultado, essa função não é útil para a maioria das caixas de diálogo.

Para uma caixa de diálogo que não usa a fonte do sistema, as unidades base são a largura e a altura médias, em pixels, dos caracteres na fonte da caixa de diálogo. Você pode usar as funções GetTextMetrics e GetTextExtentPoint32 para calcular esses valores para uma fonte selecionada. No entanto, usando a função MapDialogRect , você pode evitar erros que possam resultar se os cálculos forem diferentes daqueles executados pelo sistema.

Cada unidade base horizontal é igual a 4 unidades de modelo de caixa de diálogo horizontais; cada unidade base vertical é igual a 8 unidades de modelo de caixa de diálogo verticais. Portanto, para converter unidades de modelo de caixa de diálogo em pixels, use as seguintes fórmulas:


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

Da mesma forma, para converter de pixels em unidades de modelo de caixa de diálogo, use as seguintes fórmulas:


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

Exemplos

Para obter um exemplo, confira "Criando uma barra de ferramentas de caixa de combinação" em Usando caixas de combinação.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winuser.h (inclua Windows.h)
Biblioteca User32.lib
DLL User32.dll
Conjunto de APIs ext-ms-win-ntuser-dialogbox-l1-1-2 (introduzido no Windows 10, versão 10.0.10240)

Confira também

Conceitual

Caixas de diálogo

MapDialogRect

Referência