Alexandre, boa noite! 23/07/2014 20:15
Gostei muito do exemplo apresentado no link sugestionado por você, mas, afim de atender a minha necessidade,eu fiz algumas adaptações nele, veja abaixo:
Private Sub UserForm_Initialize()
Call VerifyScreenResolution
end
sub
Sub VerifyScreenResolution(Optional Dummy As Integer)
Dim x As Long
Dim y As Long
Dim MyMessage As String
Dim MyResponse As VbMsgBoxResult
x = GetSystemMetrics(SM_CXSCREEN)
y = GetSystemMetrics(SM_CYSCREEN)
If x >= 1280 And y >= 1024 Then
Exit Sub
End If
If x < 1280 And y < 1024 Then
MyMessage = "Sua resolução de tela atual é " & x & " X " & y & vbCrLf & "O Sistema Lorenzon Despesas Pessoais " & _
"foi desenvolvido para ser executado com uma resolução de tela de, no mínimo, 1024 X 768 e pode não funcionar corretamente " & _
"com as configurações atuais." & vbCrLf & "Gostaria de mudar a resolução da tela?"
MyResponse = MsgBox(MyMessage, vbExclamation + vbYesNo, "Resolução de tela")
End If
If MyResponse = vbYes Then
Call ChangeRes(1280, 720)
End If
End Sub
Observações:
Além de ter traduzido a mensagem, eu modifiquei os IF's. O meu projeto, para obter uma ótima apresentação das suas uferms, listview e demais comandos, a resolução do Windows precisa estar, no mínimo, em 1280 x 1024 e, por este motivo, eu coloquei esta condição:
If x < 1280 And y < 1024 Then e, se de fato for menor, ele fará a seguinte pergunta:
MyMessage = "Sua resolução de tela atual é " & x & " X " & y & vbCrLf & "O Sistema Lorenzon Despesas Pessoais " & _
"foi desenvolvido para ser executado com uma resolução de tela de, no mínimo, 1024 X 768 e pode não funcionar corretamente " & _
"com as configurações atuais." & vbCrLf & "Gostaria de mudar a resolução da tela?"
MyResponse = MsgBox(MyMessage, vbExclamation + vbYesNo, "Resolução de tela")
End If
If MyResponse = vbYes Then
Call ChangeRes(1280, 1024)
'este código é o que eu já utilizava.
End If
End Sub
Até ai tudo bem, ficou show! Mas o que acontece é que, caso o computador estiver com a resolução menor a de 1280 x 1024 e não tiver esta resolução disponível, o código não consegue alterar a resolução do computador e executa a userform com a resolução que ele já estiver, fazendo com que o projeto fica mal apresentado.
Para evitar isso, quero que, nestes casos, o código verifique se o computador possui resoluções de telas que sejam maiores que a necessária e, se não houver, o usuário receba um mensagem informado-o que não será possível executar o projeto, pois o computador não atende os requisitos necessários.
Como farei isto?
Creio que a utilização de umas CASE's resolva, mas não obtive exito!
=/
Postado : 23/07/2014 5:23 pm