Mensagem de WM_GETDPISCALEDSIZE

Essa mensagem informa ao sistema operacional que a janela será dimensionada para dimensões diferentes do padrão.

Essa mensagem é enviada para janelas de nível superior com um DPI_AWARENESS_CONTEXT de Per Monitor v2 antes que uma mensagem de WM_DPICHANGEDseja enviada e permite que a janela compute o tamanho desejado para a alteração de DPI pendente. Como o dimensionamento linear de DPI é o comportamento padrão, isso só é útil em cenários em que a janela deseja dimensionar não linearmente. Se o aplicativo responder a essa mensagem, o tamanho resultante será o retângulo candidato enviado para WM_DPICHANGED.

Use esta mensagem para alterar o tamanho do rect fornecido com WM_DPICHANGED.

#define WM_GETDPISCALEDSIZE       0x02E4

Parâmetros

wParam

O WPARAM contém um valor de DPI. O tamanho da janela dimensionada que o aplicativo definiria precisa ser computado como se a janela fosse alternar para esse DPI.

lParam

O LPARAM é um ponteiro de entrada/saída para um struct SIZE. O valor _In_ no LPARAM é o tamanho pendente da janela após uma movimentação iniciada pelo usuário ou uma chamada para SetWindowPos. Se a janela estiver sendo redimensionada, esse tamanho não será necessariamente o mesmo que o tamanho atual da janela no momento em que essa mensagem é recebida.

O valor _Out_ na LPARAM deve ser gravado pelo aplicativo para especificar o tamanho de janela dimensionado desejado correspondente ao valor de DPI fornecido no WPARAM.

Valor retornado

A função retorna um BOOL. Retornar TRUE indica que um novo tamanho foi computado. Retornar FALSE indica que a mensagem não será tratada e o dimensionamento de DPI linear padrão será aplicado à janela.

Comentários

Essa mensagem é enviada apenas para janelas de nível superior que têm um contexto de reconhecimento de DPI de Per Monitor v2.

Esse evento é necessário para facilitar o dimensionamento não linear normal e garante que a posição das janelas permaneça constante em relação ao cursor e ao mover para frente e para trás entre monitores.

Não há nenhum tratamento padrão específico dessa mensagem no DefWindowProc. Quanto a todas as mensagens que ele não manipula explicitamente, DefWindowProc retornará zero para essa mensagem. Conforme observado acima, esse retorno informa ao sistema para usar o comportamento linear padrão.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 10, versão 1703 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2016 [somente aplicativos da área de trabalho]
Cabeçalho
Winuser.h