Tema: Equivalencia
Ver Mensaje Individual
  #11 (permalink)  
Antiguo 14/11/2010, 15:29
aika
 
Fecha de Ingreso: septiembre-2007
Mensajes: 7
Antigüedad: 16 años, 8 meses
Puntos: 1
Información Respuesta: Equivalencia

Cita:
Iniciado por robertonavarro Ver Mensaje
Alternativamente puedes usar los twips como unidad de medida.

Los twips son unidades independientes de la pantalla que aseguran que la proporción de los elementos en la pantalla son los mismos en todos los sistemas de monitores. Un twip se define como 1/1440 de pulgada.

A diferencia del twip, un pixel es dependiente de la pantalla. Un pixel es un punto que representa la medida gráfica más pequeña en una pantalla.

Los elementos que usas en VB pueden ser medidos en twips. Adicionalmente puedes usar funciones para convertir twips a pixeles o viceversa.
Como dice robertonavarro, 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