eso mismo:
¿como puedo convertir Twips a pixeles y viceversa?
| |||
Gracias ... ojala y lo que dices sea cierto Cita: Por otro lado no me sirve la propiedad ScaleMode porque lo que necesito es obtener las propiedades top y left (que estan dadas en twips) de un formulario para saber su posicion en la pantalla y desplazar un asistente en base a esa posicion , pero el asistente se mueve en pixeles. Un twip son quince pixels. |
| |||
![]() 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.
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 |