ID do artigo: 94927 - Última revisão: quinta-feira, 18 de janeiro de 2007 - Revisão: 2.3

ACC: Como converter Twips para pixels

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Avançadas: Requer especialista de codificação, interoperabilidade e habilidades de multiusuários.

Como o Microsoft Access armazena as propriedades de dimensão e o local em twips, às vezes, talvez precise converter twips para pixels, como quando você chamar uma função de API do Windows. Este artigo mostra como fazer isso.

Este artigo presume que você esteja familiarizado com Visual Basic for Applications e com a criação de aplicativos do Microsoft Access usando as ferramentas de programação fornecidas com o Microsoft Access.

Mais Informações

Você pode usar as funções TwipsPerPixelX() e TwipsPerPixelY() abaixo para localizar as dimensões de um pixel em twips. Dimensões de pixel podem variar entre sistemas e não sempre talvez quadradas, para que sejam necessárias funções separadas para pixels de largura e altura.

Para adicionar essas funções ao seu aplicativo, copie um dos seguintes blocos de código em um novo módulo.

Observação : talvez você tenha algumas funções de API do Microsoft Windows definidas em uma biblioteca existente do Microsoft Access; portanto, suas declarações podem ser duplicatas. Se você receber uma mensagem de erro de nome de procedimento duplicados, remova ou comentar a instrução de declaração em seu código.

No Microsoft Access 7.0 e 97

Observação : colocar esse código em um módulo padrão, não um módulo de classe.
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 usar essas funções, divida o número de twips que você deseja converter por qualquer TwipsPerPixelX() para medida horizontal ou TwipsPerPixelY() para medida vertical. A seguir está um exemplo:
OldTwips = 2377
NewPixels = OldTwips / TwipsPerPixelX()
				

No Microsoft Access 1.x e 2.0

Observação : em exemplos de código a seguir, um sublinhado (_) no final de uma linha é usado como um caractere de continuação de linha. Remova o sublinhado do final da linha quando recriar esse código no 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 usar essas funções, divida o número de twips que você deseja converter por qualquer TwipsPerPixelX() para medida horizontal ou TwipsPerPixelY() para medida vertical. A seguir está um exemplo:
OldTwips = 2377
NewPixels = OldTwips / TwipsPerPixelX()
				

Referências

Para obter mais informações sobre esse tópico, pesquise a instrução declare , usando o índice da Ajuda do Microsoft Access.

A informação contida neste artigo aplica-se 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
Palavras-chave: 
kbmt kbhowto kbprogramming KB94927 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 94927  (http://support.microsoft.com/kb/94927/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.