Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

resolucion de pantalla

Estas en el tema de resolucion de pantalla en el foro de Visual Basic clásico en Foros del Web. Hola a todos amigos del foro. tengo una consulta. Yo he hecho un sistemita de control de stock y mi consulta es si se puede ...
  #1 (permalink)  
Antiguo 23/06/2007, 18:33
 
Fecha de Ingreso: mayo-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
resolucion de pantalla

Hola a todos amigos del foro.
tengo una consulta.
Yo he hecho un sistemita de control de stock y mi consulta es si se puede hacer que el sistema funcione o haga un cambio automatico de resolucion debido a que algunas pc soportan resoluciones bajas y otras pc resoluciones altas. si no se entiende mi pregunta por favor decidlo, avisadme.

desde ya muchas gracias a todos.
  #2 (permalink)  
Antiguo 23/06/2007, 20:14
 
Fecha de Ingreso: abril-2004
Mensajes: 192
Antigüedad: 20 años
Puntos: 0
Re: resolucion de pantalla

Hola

Si se puede cambiar la resolución , mediante el api. ( hay cientos de ejemplos gugleando)

Pero no es lo conveniente, lo ideal es que adaptes (redimensiones y posiciones) los controles de tus formularios ..saludos
__________________
Recursos visual basic
  #3 (permalink)  
Antiguo 24/06/2007, 10:15
 
Fecha de Ingreso: agosto-2005
Ubicación: Peru-Lima
Mensajes: 225
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: resolucion de pantalla

FAQ: 103. Controles que se acoplan al form
__________________
La Sinceridad lo es TODO :si:
  #4 (permalink)  
Antiguo 26/06/2007, 11:58
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años
Puntos: 4
Re: resolucion de pantalla

Hola con esto tu programa servira en cualquier pc ya que cambia la resolucion de la pantalla a la que tu pongas, tambien puedes guardar en unas variables la resolucion de pantalla que tiene el pc antes de correr el programa para asi cuando acabe el programa devolverle la resolucion de pantalla que tenia, me explico??
- si tengo un programa que quiero que se ejecute en 800x600 y el ordenador en el que lo voy a ejecutar tiene puesto 1024x768, guardo en unas variables el 1024x768 y cambio la resulucion a 800x600, cuando el usuario salga o termine el programa se vuelve a cambiar a 800x600.
VAMOS A USAR UN MODULO Y UN FORM.AL ABRIR EL PROGRAMA SE CAMBIARA LA RESOLUCION A 800X600 Y AL CERRAR LA VENTANA DEL FORM SE CAMBIARA A LA QUE TENIA EL PC(NATURALMENTE SI TIENES LA MISMA QUE EL EJEMPLO EL EFECTO NO SE NOTA).
COPIA ESTO EN UN MODULO LLAMALO COMO QUIERAS:
Cita:
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

Sub ChangeRes(iWidth As Single, iHeight As Single)

Dim DevM As DEVMODE
Dim a As Boolean
Dim i&
i = 0


Do
a = EnumDisplaySettings(0&, i&, DevM)
i = i + 1
Loop Until (a = False)

Dim b&

DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
DevM.dmPelsWidth = iWidth
DevM.dmPelsHeight = iHeight

b = ChangeDisplaySettings(DevM, 0)

End Sub

COPIA ESTO EN UN FORM:
Cita:
Public ancho As Single
Public alto As Single
Private Sub Form_Load()
'guardamos la resolucion actual en ancho y alto para
'luego volver a ponerla cuando se cierre el programa
'con la x

ancho = iWidth
alto = iHeight
'cambiamos la resolucion a 800x600

Call ChangeRes(800, 600)
End Sub

Private Sub Form_Unload(Cancel As Integer)'cuando se cierra el form
Call ChangeRes(ancho, alto)'devolvemos la resolucion guardada en ancho,alto

End Sub


espero que te sirva asi tu programa se vera en todos los ordenadores en la resolucion en que tu lo has creado...


salu2
  #5 (permalink)  
Antiguo 16/07/2007, 17:55
 
Fecha de Ingreso: mayo-2007
Mensajes: 13
Antigüedad: 17 años
Puntos: 0
Re: resolucion de pantalla

Hola A.H.H gracias por la ayuda pero todavia no lo implementado al codigo que me pasaste. Estoy tratando de entender el codigo que me pasaste, `penas tenga novedades te aviso.
Tambien gracias a todos los que se interesaron en ayudarme con mi problema.
Saludos, y hasta pronto.
  #6 (permalink)  
Antiguo 17/07/2007, 20:52
 
Fecha de Ingreso: octubre-2006
Mensajes: 139
Antigüedad: 17 años, 6 meses
Puntos: 1
Re: resolucion de pantalla

AHH : SUPER BUENO EL CÓDIGO PARA CAMBIAR LA RESOLUCIÓN DE PANTALLA !!
EN UN NUEVO PROYECTO ME FUNCIONÓ BIEN , PERO EN UNO EXISTENTE NO PUEDO ANEXARLO CON EXITO
¿DONDE DEBO INTRODUCIR ESTE CÓDIGO EN MI FORM ?
Public ancho As Single
Public alto As Single
  #7 (permalink)  
Antiguo 18/07/2007, 05:35
Avatar de A.H.H  
Fecha de Ingreso: mayo-2007
Ubicación: IRUN,(GUIPUZCOA) España
Mensajes: 178
Antigüedad: 17 años
Puntos: 4
Re: resolucion de pantalla

Hola en el form en el apartado que pone general

Ancho y Alto son publicas para usar en todo el programa normalmente se ponen por encima de Private Sub Form_Load() en el apartado general.

salu2

Última edición por A.H.H; 22/07/2007 a las 07:58
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:57.