Função EnableNonClientDpiScaling (winuser.h)
Em exibições de alto DPI, habilita o dimensionamento automático de exibição das partes da área não cliente da janela de nível superior especificada. Deve ser chamado durante a inicialização dessa janela.
Sintaxe
BOOL EnableNonClientDpiScaling(
[in] HWND hwnd
);
Parâmetros
[in] hwnd
A janela que deve ter o dimensionamento automático habilitado.
Valor retornado
Se a função for bem-sucedida, o valor retornado será diferente de zero. Se a função falhar, o valor retornado será zero. Para obter informações de erro estendidas, chame GetLastError.
Comentários
Chamar essa função habilitará o dimensionamento não cliente para uma janela de nível superior individual com DPI_AWARENESS_CONTEXT de DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE. Se, em vez disso, você não estiver usando o reconhecimento por janela e todo o processo estiver em execução no modo DPI_AWARENESS_PER_MONITOR_AWARE , chamar essa função habilitará o dimensionamento não cliente em janelas de nível superior em seu processo.
Se nenhum deles for verdadeiro ou se você chamar esse método de qualquer outra janela, ele falhará e retornará um valor igual a zero.
O dimensionamento não cliente para janelas de nível superior não está habilitado por padrão. Você deve chamar essa API para habilitá-la para cada janela de nível superior individual para a qual você deseja que a área não cliente seja dimensionada automaticamente. Depois disso, não há como desabilitá-lo. Habilitar o dimensionamento não cliente significa que todas as áreas desenhadas pelo sistema para a janela serão dimensionadas automaticamente em resposta às alterações de DPI na janela. Isso inclui áreas como a barra de legenda, as barras de rolagem e a barra de menus. Você deseja chamar EnableNonClientDpiScaling quando quiser que o sistema operacional seja responsável por renderizar essas áreas automaticamente no tamanho correto com base na DPI do monitor.
Chamar essa função permite o dimensionamento não cliente somente para janelas de nível superior. Janelas filho não são afetadas.
Essa função deve ser chamada de WM_NCCREATE durante a inicialização de uma nova janela. Uma chamada de exemplo pode ter esta aparência:
case WM_NCCREATE:
{
EnableNonClientDpiScaling(hwnd);
return (DefWindowProc(hwnd, message, wParam, lParam));
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1607 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2016 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winuser.h (inclua Windows.h) |
Biblioteca | User32.lib |
DLL | User32.dll |