RE:Help! Configurar resolución pantalla
Aqui esta el magnifico codigo!!!!!!!!!!
'Este codigo hace:
'Si encuentra q tu monitor soporta 1400 x 1050 o otra resolucion (por ejemplo).
'cambia la resolucion automaticamente 'y lo bueno es que cuando cierras tu aplicacion regresa a la resoluciona que tenia antes de cargar la aplicacion
'RECUERDA QUE TOMARA LA PRIMERA QUE ENCUENTRE Y SALDRA DEL PROCEDIMIENTO
Empieza haciendo referencia a:
DirectX 7 for Visual Basic Type Library
luego: importalo
Imports DxVBlib
'Variables
Dim dd As DxVBLib.DirectDraw7
Dim dx As New DirectX7
Dim x As Integer
Dim ddsd As DDSURFACEDESC2
Dim DisplayModesEnum As DirectDrawEnumModes
'Este ejemplo llenara un list con las resoluciones que tienes
Private Sub ObtenerResoluciones()
Dim i As Integer
dd = dx.DirectDrawCreate("")
DisplayModesEnum = dd.GetDisplayModesEnum(CONST_DDEDMFLAGS.DDEDM_DEFAULT, ddsd)
x = DisplayModesEnum.GetCount 'cuenta las resoluciones q tiene tu monitor
For i = x To 1 Step -1 'este bucle llenara la lista con inf
DisplayModesEnum.GetItem(i, ddsd) 'dato de la resolution
ListBox1.Items.Add(ddsd.lWidth & " x " & ddsd.lHeight)
Next
End Sub
ESTE PROCEDIMEINTO CAMBIA LA RESOLUCION (ESTA EXPLICADO ARRIBA)
''''''''''''''''''''''''''''''''''''''
Private Sub CambiaResolucion()
Dim i As Integer
dd = dx.DirectDrawCreate("")
DisplayModesEnum = dd.GetDisplayModesEnum(CONST_DDEDMFLAGS.DDEDM_DEFAULT, ddsd) 'crea el objeto para extraer informacion
x = DisplayModesEnum.GetCount 'cuenta las resoluciones q tiene tu monitor
For i = x To 1 Step -1
DisplayModesEnum.GetItem(i, ddsd) 'dato de la resolution
Select Case ddsd.lWidth
Case "1400"
dd.SetDisplayMode("1400", "1050", 32, 0, CONST_DDSDMFLAGS.DDSDM_DEFAULT) 'set the display mode
INFOSCREEN = 1400
Exit Sub
Case "1280"
dd.SetDisplayMode("1280", "1024", 32, 0, CONST_DDSDMFLAGS.DDSDM_DEFAULT) 'set the display mode
INFOSCREEN = 1200
Exit Sub
Case "1024"
dd.SetDisplayMode("1024", "768", 32, 0, CONST_DDSDMFLAGS.DDSDM_DEFAULT) 'set the display mode
INFOSCREEN = 1024
Exit Sub
Case "800"
dd.SetDisplayMode("800", "600", 32, 0, CONST_DDSDMFLAGS.DDSDM_DEFAULT) 'set the display mode
INFOSCREEN = 800
Exit Sub
End Select
Next
End Sub
Private Sub cmdCambiarResl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdCambiarResl.Click
ObtenerResoluciones
'CambiaResolucion()
End Sub