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.

Nota Os aplicativos em execução em uma DPI_AWARENESS_CONTEXT de DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2 dimensionam automaticamente suas áreas não cliente por padrão. Eles não precisam chamar essa função.

 

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