visual basic y configuraciones de pantalla

yoymynoe
28 de Mayo del 2004
hola a todos me gustaria resolver una duda.El caso es que estoy desarrollando una aplicacion en una determinada resolucion de pantalla(800x600)y un determinado color (32bits) y al probar la aplicacion en otro equipo que no tenga esta determinada configuracion la aplicacion no se ve igual ni en los colores ni en la posicion de los elementos de la aplicacion¿como podria controlar esto?Muchas gracias :-)

Yuval
28 de Mayo del 2004
Hola yoymynoe yo tube el mismo problema y lo solucione modificando un codigo que viene esn esta pagina: http://www.elguille.info/indice.asp Miralo te sacara de dudas son unas apis que controlan la configuracion de la pantalla. Yo he conseguido configurar la pantalla al entrar al programa y al salir que se le quede la que tenia al usuario si no entiendes el codigo o necesitas ayuda avisa y te hecho una mano
SUERTE!!!!

ice_old
28 de Mayo del 2004
hola yuval, he estado probando el código y no me funciona quizás es porque tengo que incluir alguna librería?, bueno si pudieras decirme que modificaciones hiciste estaría muy bien, simplemente para que me cambia la resolución ok? muchas gracias de antemano
Saludos

Yuval
28 de Mayo del 2004
Como veo que hay mucha gente que lo necesita compartire el codigo que uso y que me funciona:

en un modulo copio este codigo luego en el form_load llamo cargar_configuracion y en el form_unload a restaurar_confi.

Private mResolucionCambiada As Boolean
Private mResAlto As Long
Private mResAncho As Long
Private mResBits As Long
Private DevM As DevMode

Private Declare Function ChangeDisplaySettings Lib "user32" Alias "ChangeDisplaySettingsA" _
(lpDevMode As Any, ByVal dwFlags As Long) As Long

Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" _
(ByVal lpszDeviceName As Long, ByVal iModeNum As Long, _
lpDevMode As DevMode) As Boolean

Const ENUM_CURRENT_SETTINGS As Long = -1&
Const ENUM_REGISTRY_SETTINGS As Long = -2&
'
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000

Private Type DevMode
dmDeviceName As String * CCHDEVICENAME
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 * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type

Public Sub guardar_confi_antigua()

DevM.dmSize = Len(DevM)
Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM)

mResAncho = DevM.dmPelsWidth
mResAlto = DevM.dmPelsHeight
mResBits = DevM.dmBitsPerPel

End Sub

Public Sub cargar_configuracion()

Dim b&

guardar_confi_antigua

DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT

DevM.dmPelsWidth = 800
DevM.dmPelsHeight = 600

b = ChangeDisplaySettings(DevM, 0)

End Sub

Public Sub restaurar_confi()

Dim b&

DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT

DevM.dmPelsWidth = mResAncho
DevM.dmPelsHeight = mResAlto

b = ChangeDisplaySettings(DevM, 0)

End Sub

Yuval
28 de Mayo del 2004
Con esto solo cambio la configuracion el color no
Suerte y espero que os ayude!!!!

ice_old
28 de Mayo del 2004
Muchas gracias, lo iba buscando hace tiempo hasta ahora!
Saludos y gracias

yoymynoe
28 de Mayo del 2004
ok yuval muchas gracias lo mirare aver que entiendo y que no aunque todavia no me va ser posible estoy muy liado con otras cosas pero queria ir buscando una solucion.Muchas gracias de nuevo y si te necesito estaras por el foro verdad?nos vemos 1 saludo

Yuval
28 de Mayo del 2004
Por aqui estoy en el horario de trabajo. Suelo entrar por aqui cuando no tengo mucho jaleo hoy como masimo estare hasta las 15:00 y ya hasta el lunes nada jejeje, pero vamos no dudes en preguntar s.É4è te sale o no saves algo yo te ayudo.