GetDialogBaseUnits-Funktion (winuser.h)
Ruft die Dialogbasiseinheiten des Systems ab, die die durchschnittliche Breite und Höhe der Zeichen in der Systemschriftart sind. Für Dialogfelder, die die Systemschriftart verwenden, können Sie diese Werte verwenden, um zwischen Dialogvorlageneinheiten (wie in Dialogfeldvorlagen angegeben) und Pixeln zu konvertieren. Bei Dialogfeldern, die nicht die Systemschriftart verwenden, hängt die Konvertierung von Einheiten von Dialogvorlagen in Pixel von der Schriftart ab, die vom Dialogfeld verwendet wird.
Bei beiden Dialogfeldtypen ist es einfacher, die MapDialogRect-Funktion zum Ausführen der Konvertierung zu verwenden. MapDialogRect berücksichtigt die Schriftart und konvertiert ein Rechteck ordnungsgemäß aus Dialogfeldvorlageneinheiten in Pixel.
Syntax
long GetDialogBaseUnits();
Rückgabewert
Typ: LONG
Die Funktion gibt die Basiseinheiten des Dialogs zurück. Das Wort mit niedriger Reihenfolge des Rückgabewerts enthält die basiseinheit des horizontalen Dialogfelds, und das Wort mit hoher Ordnung enthält die basiseinheit des vertikalen Dialogfelds.
Hinweise
Die von GetDialogBaseUnits zurückgegebene horizontale Basiseinheit entspricht der durchschnittlichen Breite der Zeichen in der Systemschriftart in Pixel. Die vertikale Basiseinheit ist gleich der Höhe der Schriftart in Pixel.
Die Systemschriftart wird nur verwendet, wenn die Dialogfeldvorlage keine Schriftart angeben kann. Die meisten Dialogfeldvorlagen geben eine Schriftart an. Daher ist diese Funktion für die meisten Dialogfelder nicht nützlich.
Für ein Dialogfeld, das die Systemschriftart nicht verwendet, sind die Basiseinheiten die durchschnittliche Breite und Höhe der Zeichen in der Schriftart des Dialogfelds in Pixel. Sie können die Funktionen GetTextMetrics und GetTextExtentPoint32 verwenden, um diese Werte für eine ausgewählte Schriftart zu berechnen. Mit der MapDialogRect-Funktion können Sie jedoch Fehler vermeiden, die auftreten können, wenn ihre Berechnungen von denen des Systems abweichen.
Jede horizontale Basiseinheit ist gleich 4 horizontalen Dialogvorlageneinheiten; Jede vertikale Basiseinheit entspricht 8 vertikalen Dialogvorlageneinheiten. Verwenden Sie daher die folgenden Formeln, um Einheiten von Dialogvorlagen in Pixel zu konvertieren:
pixelX = MulDiv(templateunitX, baseunitX, 4);
pixelY = MulDiv(templateunitY, baseunitY, 8);
Verwenden Sie zum Konvertieren von Pixeln in Dialogvorlageneinheiten die folgenden Formeln:
templateunitX = MulDiv(pixelX, 4, baseunitX);
templateunitY = MulDiv(pixelY, 8, baseunitY);
Beispiele
Ein Beispiel finden Sie unter Erstellen einer Symbolleiste für Kombinationsfelde unter Verwenden von Kombinationsfeldern.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winuser.h (windows.h einschließen) |
Bibliothek | User32.lib |
DLL | User32.dll |
APIs | ext-ms-win-ntuser-dialogbox-l1-1-2 (eingeführt in Windows 10, Version 10.0.10240) |
Siehe auch
Konzept
Referenz