ACC: Cómo convertir Twips a píxeles

Seleccione idioma Seleccione idioma
Id. de artículo: 94927 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Avanzado: Requiere codificación experto, interoperabilidad y multiusuario conocimientos.

Puesto que Microsoft Access almacena las propiedades de dimensión y la ubicación en twips, en ocasiones, deberá convertir twips a píxeles, como cuando se llama a una función de API de Windows. En este artículo se muestra cómo hacerlo.

Este artículo se supone que está familiarizado con Visual Basic para aplicaciones y con la creación de aplicaciones de Microsoft Access mediante las herramientas de programación suministradas con Microsoft Access.

Más información

Puede utilizar las funciones de TwipsPerPixelX() y TwipsPerPixelY() para buscar las dimensiones de un píxel en twips. Las dimensiones en píxeles pueden variar entre sistemas y no siempre es cuadradas, por lo que necesita separar funciones para alto y ancho de píxel.

Para agregar estas funciones a la aplicación, copie uno de los siguientes bloques de código en un módulo nuevo.

Nota : se pueden tener algunas funciones de API de Microsoft Windows definidas en una biblioteca Microsoft Access existente; por lo tanto, las declaraciones pueden estar duplicados. Si recibe un mensaje de error de nombre de procedimiento duplicados, quite o comente la instrucción de declaración en el código.

En Microsoft Access 7.0 y 97

Nota : Coloque este código en un módulo estándar, no un módulo de clase.
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
'--------------------------------------------------
'Returns the width of a pixel, in twips.
'--------------------------------------------------
  Dim lngDC As Long
  lngDC = GetDC(HWND_DESKTOP)
  TwipsPerPixelX = 1440& / GetDeviceCaps(lngDC, LOGPIXELSX)
  ReleaseDC HWND_DESKTOP, lngDC
End Function

'--------------------------------------------------
Function TwipsPerPixelY() As Single
'--------------------------------------------------
'Returns the height of a pixel, in twips.
'--------------------------------------------------
  Dim lngDC As Long
  lngDC = GetDC(HWND_DESKTOP)
  TwipsPerPixelY = 1440& / GetDeviceCaps(lngDC, LOGPIXELSY)
  ReleaseDC HWND_DESKTOP, lngDC
End Function
				
para utilizar estas funciones, divida el número de twips a los que desea convertir cualquiera TwipsPerPixelX() para medida horizontal o TwipsPerPixelY() para la medida vertical. El siguiente es un ejemplo:
OldTwips = 2377
NewPixels = OldTwips / TwipsPerPixelX()
				

En Microsoft Access 1.x y 2.0

Nota : en los ejemplos de código siguiente, se utiliza un subrayado (_) al final de una línea como un carácter de continuación de línea. Quite el carácter de subrayado del final de la línea cuando escriba este código en Access Basic.
Option Explicit

Declare Function GetDC Lib "User" (ByVal hwnd As Integer) As Integer
Declare Sub ReleaseDC Lib "User" (ByVal hwnd As Integer, _
  ByVal hdc As Integer)
Declare Function GetDeviceCaps Lib "Gdi" (ByVal hdc As Integer, _
  ByVal nIndex As Integer) As Integer

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

'--------------------------------------------------
Function TwipsPerPixelX() As Single
'--------------------------------------------------
'Returns the width of a pixel, in twips.
'--------------------------------------------------
  Dim intDC As Integer
  intDC = GetDC(HWND_DESKTOP)
  TwipsPerPixelX = 1440 / GetDeviceCaps(intDC, LOGPIXELSX)
  ReleaseDC HWND_DESKTOP, intDC
End Function

'--------------------------------------------------
Function TwipsPerPixelY() As Single
'--------------------------------------------------
'Returns the height of a pixel, in twips.
'--------------------------------------------------
  Dim intDC As Integer
  intDC = GetDC(HWND_DESKTOP)
  TwipsPerPixelY = 1440 / GetDeviceCaps(intDC, LOGPIXELSY)
  ReleaseDC HWND_DESKTOP, intDC
End Function
				
para utilizar estas funciones, divida el número de twips a los que desea convertir cualquiera TwipsPerPixelX() para medida horizontal o TwipsPerPixelY() para la medida vertical. El siguiente es un ejemplo:
OldTwips = 2377
NewPixels = OldTwips / TwipsPerPixelX()
				

Referencias

Para obtener más información acerca de este tema, busque declare (instrucción) , utilizando el índice de la Ayuda de Microsoft Access.

Propiedades

Id. de artículo: 94927 - Última revisión: jueves, 18 de enero de 2007 - Versión: 2.3
La información de este artículo se refiere a:
  • Microsoft Access 1.0 Standard Edition
  • Microsoft Access 1.1 Standard Edition
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palabras clave: 
kbmt kbhowto kbprogramming KB94927 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 94927
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com