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
Referência