USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  autoajuste de form segundo a resolução de video
Treze
não registrado
ENUNCIADA !
Postada em 09/10/2009 11:20 hs   
Vamos a uma explicação mais aprofundada do assunto
 
Primeiramente, eu aconselharia a se usar uma resolução padrão minima de 1024x768, pois a maioria dos PCs atuais possuem esta resolução .
 
O tamnho do form é definido em Twips e a resolução é em Pixels, para vc saber o tamaho form em pixel terá de fazer a conversão.
 
conversão de Twips para Pixel
 
01 Pixel possui 15 Twips
 
então para se obter a resolução de 1024x768, basta fazer o seguinte calculo.
 
1024 * 15 = 15360
768 * 15 = 11520
 
então o form terá o seguinte tamanho
 
Form1.Height = 11520
Form1.Width = 15360
 
entendeu.
 
agora pesquise aqui mesmo as dicas por
 
Alterar resolução
 
e pronto basta fazer o seu programa.
 
 
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 09/10/2009 11:37 hs            
Só pra finalizar com Chave de Ouro.
 
No form principal cole
 
Private Sub Form_Load()
    Dim intX As Integer
    Dim intY As Integer
    Dim strResolucao As String
   
    intX = Screen.Width / Screen.TwipsPerPixelX
    intY = Screen.Height / Screen.TwipsPerPixelY
    strResolucao = intX & "x" & intY
        If strResolucao <> "1024x768" Then
        Res = Split(strResolucao, "x") 'Armazena a resolução em uma array
        Call ChangeRes(1024, 768) 'altera a resolução para 1024x768
        End If
End Sub
 
 
Private Sub Form_Unload(Cancel As Integer)
'quando você encerrar o programa
Call ChangeRes(CInt(Res(0)), CInt(Res(1))) 'Retorna para resolução padrão do PC
End Sub

e em um módulo cole

 
Private Declare Function EnumDisplaySettings Lib _
        "user32" Alias "EnumDisplaySettingsA" _
        (ByVal lpszDeviceName As Long, ByVal _
        iModeNum As Long, lpDevMode As Any) As _
        Boolean
Private Declare Function ChangeDisplaySettings Lib _
        "user32" Alias "ChangeDisplaySettingsA" _
        (lpDevMode As Any, ByVal dwflags As Long) _
        As Long
Private Const CCDEVICENAME = 32
Private Const CCFORMNAME = 32
Private Const DM_PELSWIDTH = &H80000
Private Const DM_PELSHEIGHT = &H100000
Private Type DEVMODE
  dmDeviceName As String * CCDEVICENAME
  dmSpecVersion As Integer
  dmDriverVersion As Integer
  dmSize As Integer
  dmDriverExtra As Integer
  dmFields As Long
  dmOrientation As Integer
  dmPaperSize As Integer
  dmPaperLength As Integer
  dmPaperWidth As Integer
  dmScale As Integer
  dmCopies As Integer
  dmDefaultSource As Integer
  dmPrintQuality As Integer
  dmColor As Integer
  dmDuplex As Integer
  dmYResolution As Integer
  dmTTOption As Integer
  dmCollate As Integer
  dmFormName As String * CCFORMNAME
  dmUnusedPadding As Integer
  dmBitsPerPel As Integer
  dmPelsWidth As Long
  dmPelsHeight As Long
  dmDisplayFlags As Long
  dmDisplayFrequency As Long
End Type
Global Res() As String
Public Sub ChangeRes(iWidth As Single, iHeight _
       As Single)
  Dim DevM As DEVMODE
  Dim a As Boolean
  Dim i As Long
  Dim b As Long
  i = 0
  Do
    a = EnumDisplaySettings(0&, i&, DevM)
    i = i + 1
  Loop Until (a = False)
  DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
  DevM.dmPelsWidth = iWidth
  DevM.dmPelsHeight = iHeight
  b = ChangeDisplaySettings(DevM, 0)
End Sub
 
 
até a próxima
 
 
TÓPICO EDITADO
 
Rogério
não registrado
ENUNCIADA !
Postada em 09/10/2009 19:27 hs   
Muito obrigado pelas dicas , me ajudou muito, vou ainda testar esta dica, obrigado
   
Página(s): 2/2     « ANTERIOR  


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2026   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página