Vilmar, com estes novos monitores de cristal liquido, este problema no VB6 é um saco.
Mas eu estou contornando este problema de uma forma mambembe, mas tem dado um resultado satisfatório, ainda estou melhorando esta rotina, mas "quebra o galho".
Veja, fiz o seguinte:
Coloquei duas variáveis públicas:
lHEIGHT e lWIDTH do Tipo Long
Faço tudo como se fosse 800x600
No formulário inicial, eu pego a resolução de video.
Se for igual a 800x600 as variáveis valem 1.
Se for 1024x768 ou superior: 1024 / 800 = 1,28 e 768 / 600 = 1,28
Então mudou os valores das váriaveis:
Depois:
Private Sub Form_Load()
Me.Height = (9000 * lHEIGHT)
Me.Width = (12000 * lWIDTH)
End Sub
Depois chamo uma função em um módulo que percorre todos os controles do form e adequa o tamanho de acordo com a resolução do video.
Isto vale para Top, Left e qualquer posicionamento de controles.
O trabalho é que não pode ser automático, voce tem que posicionar todos os forms na tela, e como eu tenho projetos em 4 módulos com mais de 130 forms, imagine o trabalho que deu.
Mas é a solução que achei, e vem dando resultados.
vlu//