Tela cortada no monitor: escala do Windows e Quadros no E3.

1. Introdução

Em aplicações com dois ou mais monitores, é comum dividir a janela do Viewer usando um Quadro (Panel.FrameSet) com divisores recursivos, um para cada monitor. Um cenário relatado: o divisor entre o segundo e o terceiro monitor não ficava exatamente na borda física entre eles — o conteúdo do terceiro monitor aparecia cortado, mesmo depois de ajustar o SplitValue em pixels para bater com a largura de cada monitor.

A causa não estava no Quadro em si, e sim na escala de exibição do Windows: quando os monitores têm porcentagens de escala diferentes entre si, o limite em pixels calculado para um monitor não corresponde mais à borda física do monitor seguinte, e a tela é cortada.

2. O que é o Quadro (Panel.FrameSet) e o SplitValue

O Quadro é o objeto que divide a janela do Viewer em Frames — cada Frame exibe uma Tela. A posição do divisor é controlada pela propriedade SplitValue, que pode ser configurada em percentual ou em pixels (unidade selecionável nas propriedades do divisor, no Studio).

Como todo split do Quadro é binário (sempre gera 2 Frames filhos), um layout para 3 ou mais monitores lado a lado exige divisões recursivas: divide-se o Quadro raiz em dois, e depois divide-se novamente um dos Frames resultantes, e assim por diante — um nível de split a mais para cada monitor extra.

Por que usar pixels em vez de percentual?

Como a largura de cada monitor raramente resulta numa fração exata da largura total (ex.: 3 monitores não dividem a tela em terços exatos), configurar o SplitValue diretamente em pixels, usando a largura real de cada monitor, é mais preciso do que aproximar por percentual.

3. Como o problema aparece

Situação Efeito
Todos os monitores com a mesma escala do Windows [OK] O divisor (em pixels) cai exatamente na borda física entre monitores.
Monitores com escalas diferentes (ex.: 1º monitor a 100%, 2º/3º a 150%) [Falha] O pixel lógico do SplitValue não corresponde mais à mesma posição física em cada monitor — o divisor fica deslocado e a área exibida no monitor de escala diferente é cortada.

A opção “Ajustar ao divisor” (clique com o botão direito sobre a Tela) redimensiona a Tela para o tamanho atual do Frame — mas isso não resolve um deslocamento causado por escalas diferentes, porque o próprio Frame já está posicionado no lugar errado. Além disso, “Ajustar ao divisor” não é uma configuração persistente: é um ajuste único, aplicado no momento do clique, e não fica “salvo” para reagir a mudanças futuras de tamanho — por isso pode parecer que “a configuração não salva ao fechar a janela”.

4. Como configurar / diagnosticar

No Windows (verificação essencial antes de mexer no Quadro)

  1. Abra Configurações do Windows → Sistema → Vídeo (Tela).
  2. Selecione cada monitor usado pela aplicação e confira o campo Escala (dimensionar texto, apps e outros itens).
  3. Ajuste todos os monitores usados pelo Quadro para a mesma escala (no caso resolvido, todos para 100%).
  4. Reabra o Viewer e confirme se o Quadro passou a cobrir corretamente cada monitor.

No E3 Studio (posicionamento do divisor em pixels)

  1. No Domínio, clique com o botão direito sobre o Quadro (Divisor) raiz → Dividir Verticalmente (ou Horizontalmente, conforme o arranjo dos monitores). Os Frames default nascem como EsquerdoDireito.
  2. Nas propriedades do divisor, troque a unidade do SplitValue de percentual para pixels e informe a largura do primeiro monitor (ex.: Esquerdo = 1920 px, para um monitor de 1920 pixels de largura).
  3. Para posicionar o limite entre o segundo e o terceiro monitor, divida novamente o Frame Direito resultante e repita: Direito.Esquerdo = 1920 px (largura do segundo monitor), deixando o Direito remanescente para o terceiro monitor.
  4. Associe cada Tela ao respectivo Frame (SplitLink, ou por script com Application.GetFrame("NomeFrame").OpenScreen).
  5. Clique com o botão direito sobre cada Tela e use “Ajustar ao divisor” para redimensioná-la ao tamanho atual do Frame. Repita esse ajuste sempre que o layout ou a escala dos monitores mudar.

5. Observações e boas práticas

  • Padronize a escala de exibição do Windows em todos os monitores usados por um Quadro antes de calcular posições de divisor em pixels. Escalas diferentes (ex.: 100% x 150%) alteram a relação entre pixels lógicos e área física, deslocando qualquer limite calculado em pixels fixos.
  • “Ajustar ao divisor” é um ajuste único, não uma vinculação contínua — se o tamanho do Frame mudar depois (nova escala, nova resolução), repita o ajuste manualmente.
  • Ao planejar a janela do Viewer para múltiplos monitores, lembre que a dimensão da janela deve ser a soma das resoluções individuais dos monitores (ex.: dois monitores de 1280×1024 lado a lado resultam em 2560×1024) — configure isso antes de posicionar os divisores do Quadro.
  • Mantenha o E3 em uma versão com suporte vigente; versões descontinuadas podem não refletir correções já aplicadas a esse comportamento.

Artigos relacionados


Print Friendly, PDF & Email

Este artigo foi útil? Was this helpful?

Classificação média - Average rating 0 / 5. Count: 0

Leave a Reply

Your email address will not be published.Required fields are marked *