Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как перевести pixel в twip / 5 сообщений из 5, страница 1 из 1
18.04.2007, 17:15
    #34470554
mirgor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести pixel в twip
Подскажите функцию перевода pixel в twip. Что-то не могу найти нормального "рецепта".
...
Рейтинг: 0 / 0
18.04.2007, 17:29
    #34470624
bILL HEAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести pixel в twip
что значит "нормального" ?
а искал вообщето ?
http://sql.ru/forum/actualthread.aspx?tid=188746&hl=twips+pixel#1590497
...
Рейтинг: 0 / 0
18.04.2007, 17:31
    #34470637
mds_world
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести pixel в twip
mirgorПодскажите функцию перевода pixel в twip. Что-то не могу найти нормального "рецепта".Вот здесь "рецепт" от Анатолия Кудрявцева
...
Рейтинг: 0 / 0
18.04.2007, 17:40
    #34470688
mirgor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести pixel в twip
Спасибо!
...
Рейтинг: 0 / 0
18.04.2007, 18:07
    #34470822
mirgor
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как перевести pixel в twip
В общем надо изменять высоту формы одновременно с высотой рабочей области Access. Вот что получилось по :

В модуль
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
    Width As Long
    Height As Long
End Type

Public Const LOGPIXELSX As Long =  88 
Public Const LOGPIXELSY As Long =  90 
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hDC As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" ( _
        ByVal hDC As Long, _
        ByVal nIndex As Long _
    ) As Long


Sub Использование()
      Debug.Print GetWindowRectSize(Application.hWndAccessApp).Height
End Sub

'=================================================================================
Public Function GetWindowRectSize(hwnWindow, Optional inpx As Boolean) As RECT
'Для визначення розмірів вікон
    Dim a As Long
        a = GetWindowRect(hwnWindow, GetWindowRectSize)
        With GetWindowRectSize
            .Height = .Right - .Left
            .Width = .Bottom - .Top
        
            If Not inpx Then
                .Left = PixelToTwip(.Left)
                .Top = PixelToTwip(.Top)
                .Right = PixelToTwip(.Right)
                .Bottom = PixelToTwip(.Bottom)
                .Width = PixelToTwip(.Width)
                .Height = PixelToTwip(.Height)
            End If
        End With
End Function

Private Function TwipsPerPixel(Optional ByVal Dimension As Long = LOGPIXELSX) As Long
  Const TwipsPerInch As Long =  1440 
  Dim DesktopDC As Long
On Error GoTo ErrorHandle
  DesktopDC = GetDC(Application.hWndAccessApp) 'DesktopDC = GetDC(HWND_DESKTOP)
  TwipsPerPixel = TwipsPerInch / GetDeviceCaps(DesktopDC, Dimension)
ErrorHandle:
  Call ReleaseDC(Application.hWndAccessApp, DesktopDC) 'Call ReleaseDC(HWND_DESKTOP, DesktopDC)
  'Call Exception.RaiseAgain
End Function

'перевод твипов в пиксели
Public Function TwipToPixel(ByVal Twips As Long) As Long
  TwipToPixel = Twips / TwipsPerPixel()
End Function

'перевод пикселей в твипы
Public Function PixelToTwip(ByVal Pixels As Long) As Long
  PixelToTwip = Pixels * TwipsPerPixel()
End Function
'=================================================================================


Что не понял: Зачем
Код: plaintext
1.
2.
3.
ErrorHandle:
  Call ReleaseDC(Application.hWndAccessApp, DesktopDC) 'Call ReleaseDC(HWND_DESKTOP, DesktopDC)
  'Call Exception.RaiseAgain

Exception.RaiseAgain - просто отключил
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как перевести pixel в twip / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]