vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: vb6 Controlgröße stimmt nicht bei benutzerdifinierter DPI-Einstellung 
Autor: fritzfritz
Datum: 27.11.09 00:00

Das ist wirklich ein toller Beitrag! Sehr gut erklärt - vielen Dank für Deine viele Mühe! Ich habe es schon ausprobiert und es klappt damit gut.

Hier in Abwandlung eines vorhandenen Tipps die Ermittlung des DPI-Faktor für die obige Berechnung:

'hier die APIs:
Private Declare Function GetDesktopWindow Lib "user32" () As Long
 
Private Declare Function GetDC Lib "user32" ( _
  ByVal hWnd As Long) As Long
 
Private Declare Function GetDeviceCaps Lib "gdi32" ( _
  ByVal hdc As Long, _
  ByVal nIndex As Long) As Long
 
Private Declare Function ReleaseDC Lib "user32" ( _
  ByVal hWnd As Long, _
  ByVal hdc As Long) As Long
Hier die Funktion:

Private Function DpiFaktor() As Single
Const LOGPIXELSX = 88
Dim hWndDesk&, hDCDesk&, logPix&, Proz&
 
    'DPI-Wert ermitteln: (z.B. logPix = 131)
    hWndDesk = GetDesktopWindow()
    hDCDesk = GetDC(hWndDesk)
    logPix = GetDeviceCaps(hDCDesk, LOGPIXELSX)
    Call ReleaseDC(hWndDesk, hDCDesk)
 
    'DPI-Wert in Prozent umrechnen:
    Proz& = (logPix * 100) / 96 '(z.B. Proz& = 136)
    'DPI-Wert als Faktor für Berechnung:
    DpiFaktor = Proz& / 100 '(z.B. 1.36)
 
End Function
Hier der Aufruf:
DPI = DpiFaktor()
'ergibt z.B. 1.36 = 136%
Zu beachten ist noch, dass das Control auch in dem Bereich Ereignisse empfängt, der rechts und unten sozusagen leer ist. Eine Lösung wäre hier, das Control in ein Frame zu setzen, um den nicht gezeichneten Bereich abzuschneiden.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
vb6 Controlgröße stimmt nicht bei benutzerdifinierter DPI-Ei...3.969fritzfritz25.11.09 23:45
Re: vb6 Controlgröße stimmt nicht bei benutzerdifinierter DP...4.141Preisser26.11.09 17:56
Re: vb6 Controlgröße stimmt nicht bei benutzerdifinierter DP...4.248fritzfritz27.11.09 00:00

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel