Compartilhar via


User Interface Layout

Windows Mobile SupportedWindows Embedded CE Not Supported

9/9/2008

Elementos interface do usuário cujo posições e tamanhos são especificados em coordenadas pixel que assumem 96-DPI será incorretos no alto DPI. Em geral, todos os elementos interface do usuário devem ser usando dimensionadas posições e tamanhos ou relativo para controles, fontes ou sistema métricas dispostos em.

O GetDeviceCaps Windows Embedded CE com função pode ser usada para obter PPP de um exibir passando em LOGPIXELSX ou LOGPIXELSY como o segundo parâmetro. O CrosswordSample demonstra como você pode definir macros SCALEX e SCALEY para aplicar um fator de escala com base em informações do GetDeviceCaps.

Você pode continuar a trabalho em pixels mas remover suposições sobre o PPP por:

  • Usando as macros SCALEX e SCALEY a escalabilidade pixel 96-DPI coordenadas ou usando as métricas retornadas pelo GetSystemMetrics.
  • Expressando tamanhos ou posições relativo aos outros controles.
  • Expressando tamanhos ou posições relativo a uma fonte.

Caixas de Diálogo já usar tamanhos fonte para determinar seu layout, caso geralmente não precisam nenhuma modificação especial para trabalho em dispositivos high-DPI.

Aqui está um exemplo de posicionamento uma janela com o reconhecimento de PPP, onde x, y, dx e dy são coordenadas pixel na 96-DPI:

SetWindowPos(hwnd, NULL, SCALEX(x), SCALEY(y), SCALEX(dx), SCALEY(dy), SWP_NOZORDER);

Se você escolher a escalabilidade pixel 96-DPI métricas, estar ciente de arredondamento problemas ao usar números inteiros. De exemplo, SCALEX(a + b) pode não igual (SCALEX(a) + SCALEX(b)) por causa de arredondamento problemas.

See Also

Concepts

Developing DPI Aware Applications
High DPI Display
System Metrics
Drawing with DPI Aware Thick Pens
Internet Explorer and HTML Controls Exception
GAPI Legacy Support