ACC2000: Τρόπος μετατροπής ΕΚ σε pixel

Για προχωρημένους: Απαιτεί ειδικές γνώσεις κωδικοποίησης, διαλειτουργικότητας και περιβάλλοντος για πολλούς χρήστες.


Αυτό το άρθρο ισχύει για μια βάση δεδομένων της Microsoft Access (.mdb) και σε ένα έργο της Microsoft Access (.adp).


Σύνοψη

Επειδή η Microsoft Access αποθηκεύει ιδιότητες διάσταση/θέση ως ΕΚ, σε ορισμένες περιπτώσεις ίσως χρειαστεί να μετατρέψετε εκ σε pixel, όπως όταν καλείτε μια συνάρτηση API των Windows. Αυτό το άρθρο σας δείχνει πώς να το κάνετε αυτό.


Η Microsoft παρέχει παραδείγματα προγραμματισμού μόνο για επεξήγηση, χωρίς καμία εγγύηση, είτε σιωπηρή είτε ρητή. Αυτό περιλαμβάνει, ενδεικτικά, τις σιωπηρές εγγυήσεις εμπορευσιμότητας ή καταλληλότητας για συγκεκριμένο σκοπό. Αυτό το άρθρο προϋποθέτει ότι είστε εξοικειωμένοι με τη γλώσσα προγραμματισμού που παρουσιάζεται, καθώς και με τα εργαλεία που χρησιμοποιούνται για τη δημιουργία διαδικασιών και τον εντοπισμό σφαλμάτων σε αυτές. Οι μηχανικοί υποστήριξης της Microsoft μπορούν να σας εξηγήσουν τη λειτουργικότητα μιας συγκεκριμένης διαδικασίας, αλλά δεν θα τροποποιήσουν αυτά τα παραδείγματα για να παράσχουν πρόσθετες λειτουργίες, ούτε θα δημιουργήσουν διαδικασίες για να καλύψουν τις συγκεκριμένες απαιτήσεις σας.

Περισσότερες πληροφορίες

Μπορείτε να χρησιμοποιήσετε την ακόλουθη συνάρτηση ConvertTwipsToPixels() για να μετατρέψετε εκ σε pixel. Σημειώστε ότι pixel δεν είναι πάντα τετράγωνο (το ύψος και το πλάτος δεν είναι το ίδιο); Επομένως, είναι αναγκαίο για τη μεταβίβαση προς την επιθυμητή "κατεύθυνση" για να χρησιμοποιήσετε (οριζόντιες ή κάθετες).


  1. Δημιουργήστε μια νέα λειτουργική μονάδα και πληκτρολογήστε τα ακόλουθα στην ενότητα δηλώσεων:

    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 WU_LOGPIXELSX = 88
    Const WU_LOGPIXELSY = 90

    ΣΗΜΕΊΩΣΗ: ίσως χρειαστεί μερικές συναρτήσεις API των Windows της Microsoft που ορίζονται σε μια υπάρχουσα βιβλιοθήκη Microsoft Access; Επομένως, σας δηλώσεις ενδέχεται να είναι διπλότυπες. Εάν λάβετε ένα μήνυμα λάθους όνομα διαδικασίας διπλότυπες, καταργήστε ή σχόλια από την πρόταση δηλώσεις στον κώδικά σας.
  2. Πληκτρολογήστε την ακόλουθη διαδικασία:
    Function ConvertTwipsToPixels (lngTwips as Long, _   lngDirection as long) As Long

    'Handle to device
    Dim lngDC as long
    Dim lngPixelsPerInch as Long
    Const nTwipsPerInch = 1440
    lngDC = GetDC(0)

    If (lngDirection = 0) Then 'Horizontal
    lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSX)
    Else 'Vertical
    lngPixelsPerInch = GetDeviceCaps(lngDC, WU_LOGPIXELSY)
    End If
    lngDC = ReleaseDC(0, lngDC)
    ConvertTwipsToPixels = (lngTwips / nTwipsPerInch) * lngPixelsPerInch

    End Function

Για να καλέσετε αυτήν τη συνάρτηση, περάσει τον αριθμό ΕΚ που θέλετε να μετατρέψετε και άλλη παράμετρος που δηλώνει την οριζόντια ή κατακόρυφη μέτρησης (0 για οριζόντιο, μη μηδενικό για κατακόρυφη). Ακολουθεί ένα δείγμα κλήσης:

Function ShowConvert()   Dim lngOldTwips As Long
lngOldTwips = 2377
ShowConvert = ConvertTwipsToPixels(lngOldTwips, 0)
End Function

Ιδιότητες

Αναγνωριστικό άρθρου: 210590 - Τελευταία αναθεώρηση: 8 Ιαν 2017 - Αναθεώρηση: 1

Σχόλια