Foros del Web » Programación para mayores de 30 ;) » Programación General »

saber la resolucion de la pantalla en VB6?

Estas en el tema de saber la resolucion de la pantalla en VB6? en el foro de Programación General en Foros del Web. Como puedo saber la resolucion de la pantalla? estoy utilizando los asistentes como los que utiliza el office, pero no estoy seguro si cuando utilizo ...
  #1 (permalink)  
Antiguo 22/01/2003, 11:30
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 8 meses
Puntos: 0
saber la resolucion de la pantalla en VB6?

Como puedo saber la resolucion de la pantalla?

estoy utilizando los asistentes como los que utiliza el office, pero no estoy seguro si cuando utilizo moveto el asistente se mueve en pixeles (creo que si).
  #2 (permalink)  
Antiguo 22/01/2003, 12:15
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 8 meses
Puntos: 0
¿o como puedo convertir Twips a pixeles y viceversa?
  #3 (permalink)  
Antiguo 22/01/2003, 12:20
Avatar de Jorge_Mota  
Fecha de Ingreso: diciembre-2002
Ubicación: Chapinlandia :-D
Mensajes: 725
Antigüedad: 21 años, 11 meses
Puntos: 11
checa este ejemplo tomado de www.allapi.net

'Example submitted by Guille ([email protected])
'Visit his website at http://guille.costasol.net/
Option Explicit
Const ENUM_CURRENT_SETTINGS As Long = -1&
Const CCDEVICENAME = 32
Const CCFORMNAME = 32
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
Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Private Sub Form_Load()
Dim DevM As DEVMODE
Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM)
Debug.Print "Current screen width: " & DevM.dmPelsWidth & " pixels"
Debug.Print "Current screen height: " & DevM.dmPelsHeight & " pixels"
Debug.Print "Current color depth: " & DevM.dmBitsPerPel & " bits/pixel"
End Sub
__________________
Jorge Mota
Blog
Gubiz estafa
  #4 (permalink)  
Antiguo 22/01/2003, 12:42
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 8 meses
Puntos: 0
gracias ya lo cheque y me sirve a las mil maravillas

en cuanto a convertir de Twips a pixeles y viceversa

no sabrias como?
  #5 (permalink)  
Antiguo 27/01/2003, 06:54
 
Fecha de Ingreso: noviembre-2002
Mensajes: 1.341
Antigüedad: 22 años
Puntos: 17
Umm, ya sé que ya está resuelto lo de la resolución, pero no sería más fácil un screen.width o screen.height?¿?¿?

esto lo dá en twips, pero si lo divides entre quince te dá los pixels.
  #6 (permalink)  
Antiguo 27/01/2003, 12:51
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 8 meses
Puntos: 0
Sale gracias eso igual y me sirve tambien mas a futuro.
  #7 (permalink)  
Antiguo 27/01/2003, 12:58
Avatar de Mickel  
Fecha de Ingreso: mayo-2002
Ubicación: Lima, Peru
Mensajes: 4.619
Antigüedad: 22 años, 6 meses
Puntos: 7
No era mas facil usar el SysInfo object para obtener las propiedades
WorkAreaHeight y WorkAreaWidth?
  #8 (permalink)  
Antiguo 27/01/2003, 13:06
 
Fecha de Ingreso: noviembre-2002
Ubicación: Lima - Perú
Mensajes: 13
Antigüedad: 22 años
Puntos: 0
No era más facil poner

Ancho = Screen.Width
Alto = screen.Height :-0
  #9 (permalink)  
Antiguo 31/01/2003, 13:03
 
Fecha de Ingreso: marzo-2002
Mensajes: 449
Antigüedad: 22 años, 8 meses
Puntos: 0
Siempre hay mil formas de hacer lo mismo.

Pero ni pa que me dicen porque el me respondio primero y bastante mejor explicadito que sus simples comentarios.

Incluso recientemente descubri otra forma que tambien me hubiera servido y es:

Poner la siguiente declaracion:

Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

y se usa asi:

iScreenHeight = GetSystemMetrics(1)
iScreenWidth = GetSystemMetrics(0)

eso tambien me da la resolucion en pixeles
  #10 (permalink)  
Antiguo 31/01/2003, 15:24
 
Fecha de Ingreso: enero-2003
Ubicación: Resistencia, Chaco, Argentina
Mensajes: 18
Antigüedad: 21 años, 9 meses
Puntos: 0
Sin API

¿Querés saber la resolución de pantalla y los Twips por pixel?, usá el siguiente código:

Dim Ancho As Integer
Dim Alto As Integer

Ancho = Screen.Width / Screen.TwipsPerPixelX
Alto = Screen.Height / Screen.TwipsPerPixelY

Print Ancho, Alto
__________________
Gustavo Azcona®
  #11 (permalink)  
Antiguo 14/11/2010, 15:33
 
Fecha de Ingreso: septiembre-2007
Mensajes: 7
Antigüedad: 17 años, 2 meses
Puntos: 1
Información Respuesta: saber la resolucion de la pantalla en VB6?

Cita:
Iniciado por Keysher Ver Mensaje
Umm, ya sé que ya está resuelto lo de la resolución, pero no sería más fácil un screen.width o screen.height?¿?¿?

esto lo dá en twips, pero si lo divides entre quince te dá los pixels.
No, no, no.
Un píxel es un punto más o menos gordo en función de la resolución de pantalla, por tanto, la relación entre píxel y twips o entre píxel y punto o entre píxel y pulgada no es siempre la misma.
Este código te permitirá saber, en cada momento lo gordo (ancho y alto en twips) que es tu píxel:

Código:
Option Explicit

Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long

Const HWND_DESKTOP As Long = 0
Const LOGPIXELSX As Long = 88
Const LOGPIXELSY As Long = 90

'--------------------------------------------------
Function TwipsPerPixelX() As Single
'--------------------------------------------------
'Devuelve la anchura de un píxel expresada twips.

  Dim lngDC As Long
  lngDC = GetDC(HWND_DESKTOP)
  TwipsPerPixelX = 1440& / GetDeviceCaps(lngDC, LOGPIXELSX)
  ReleaseDC HWND_DESKTOP, lngDC
End Function

'--------------------------------------------------
Function TwipsPerPixelY() As Single
'--------------------------------------------------
'Devuelve la altura de un píxel expresada twips.

  Dim lngDC As Long
  lngDC = GetDC(HWND_DESKTOP)
  TwipsPerPixelY = 1440& / GetDeviceCaps(lngDC, LOGPIXELSY)
  ReleaseDC HWND_DESKTOP, lngDC
End Function
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 14:41.