Ir para conteúdo
Fórum Script Brasil
  • 0

Definir Resolucao Do Form


ramon

Pergunta

Tipo quero que a resolucao do meu form fique sempre em 640 x 480 em tela cheia

Digamos que o usuario eseja usando 800 x 600 no sitema operacional

Quando abrir o meu programa tem que mudar a resolucao para 640 x 480 e quando fechar meu programa volte ao normal 800 x 600.

Pois assim meu programa fica rodando em 640 x 480.

Então o que eu quero, é fazer o meu programa rodar sempre em 640 x 480 tela cheia não importando qual a resolução que o usuario esteja usando noi sitema operacional.

Como fazer isso?

Coloca um exemplo do codigo

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Na boa...

Seu usuário vai te xingar até...

Isso que você tá querendo é possível mas é complicado. Tem que usar umas APIs e tal, mas o recomendado é que você redimensione seu form de 640x480 para 800x600 e assim por diante.

beleza ?

Abraço,

Garcia

Link para o comentário
Compartilhar em outros sites

  • 0

Mesmo não recomendando que você faça isso, segue a rotina para seu problema:

Public Type RECT

Left As Long

Top As Long

Right As Long

Bottom As Long

End Type

Public Declare Function GetClipCursor Lib "user32.dll" (lprc As RECT) As Long

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

Const CCDEVICENAME = 32

Const CCFORMNAME = 32

Const DM_PELSWIDTH = &H80000

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

Dim DevM As DEVMODE

Public Sub ChangeRes(iWidth As Single, iHeight As Single)

Dim a As Boolean

Dim i As Long

Do

a = EnumDisplaySettings(0&, i, DevM)

i = i + 1

Loop Until (a = False)

Dim b As Long

DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT

DevM.dmPelsWidth = iWidth

DevM.dmPelsHeight = iHeight

b = ChangeDisplaySettings(DevM, 0)

End Sub

Agora no Form digite o seguinte:

Dim ResX As Single

Dim ResY As Single

Dim OldResX As Single

Dim OldResY As Single

Dim Resolucao As Boolean

Private Sub Form_Load()

ResX = 640

ResY = 480

Dim r As RECT

Call GetClipCursor®

OldResX = r.Right

OldResY = r.Bottom

If OldResX <> ResX And OldResY <> ResY Then

Resolucao = True

Call ChangeRes(ResX, ResY)

Else

Resolucao = False

End If

End Sub

Private Sub Form_Unload(Cancel As Integer)

If Resolucao = True Then

Call ChangeRes(OldResX, OldResY)

End If

End Sub

Essa rotina peguei de uma amigo, o Marcelo Mágico, no site lula.pro.br

beleza ?

Abraço,

Garcia

Link para o comentário
Compartilhar em outros sites

  • 0

Ok agora me surgiu uma outra duvida é possivel eu definir a frequencia de quantos Hz o monitor vai ficar trabalhando

Pois tipo quando eu to nas minhas proiedades de video configurado o monitor para 75 Hz e depois executo o Form ele muda a resoluçao para e tambem a frequencia

Mas quando eu fecho o Form ele retorna a resolução mas a frequencia ele n retorna

alguém sabe o porque?

Link para o comentário
Compartilhar em outros sites

  • 0

FREQUENCIA DE ATUALIZACAO DO MONITOR REFRESH RATE

Seguinte,

Uso a Frequência de Atualização da Tela (Screen Refresh Rate) do meu monitor a 75Hz. Porém tenho um jogo de futebol aqui que jogo muito que fica melhor a 60Hz.

Como já estou de saco cheio de ter que trocar manualmente, gostaria de saber se alguém pode me ajudar com uma rotina para:

1 - Alterar o Refresh Rate para 60Hz;

2 - Executar o executável (redundante mas tudo bem) do jogo;

3 - Voltar para 75Hz, quando sair do jogo.

Abração!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...