vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2014
 
zurück
Rubrik: Fonts22.03.05
CreateFont-Funktion

Diese Funktion erstellt einen Font und gibt dessen Handle zurück.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  5.424 

Deklaration:

Declare Function CreateFont Lib "gdi32.dll" _
  Alias "CreateFontA" ( _
  ByVal nHeight As Long, _
  ByVal nWidth As Long, _
  ByVal nEscapement As Long, _
  ByVal nOrientation As Long, _
  ByVal fnWeight As Long, _
  ByVal fdwItalic As Long, _
   ByVal fdwUnderline As Long, _
  ByVal fdwStrikeOut As Long, _
  ByVal fdwCharSet As Long, _
  ByVal fdwOutputPrecision As Long, _
  ByVal fdwClipPrecision As Long, _
   ByVal fdwQuality As Long, _
  ByVal fdwPitchAndFamily As Long, _
  ByVal lpszFace  As String) As Long

Beschreibung:
Diese Funktion erstellt einen Font und gibt dessen Handle zurück.

Parameter:
nHeightErwartet oder enthält einenLongwert, der die Elementhöhe der Schrift angibt. Ist dieser Wert negativ, wirder in eine positive Zahl umgewandelt. Diese Zahl gibt dann die Elementhöhe der Schrift an. Wird "0" übergeben, so wählt der Dialog die Standard-Elementhöhe der Schrift.
nWidthGibt die Weite eines Buchstabenan. Wird hier eine "0" übergeben, so wird die Standardweite der Buchstaben gewählt.
nEscapementEnthält den Grad von der Basis-Linie bis zum Endpunkt des Vectors in 1/10-Grad-Schritten. Bei Windows 9x muss dieserWert mit "lfOrientation" identisch sein.
nOrientationDie Gradzahl von der Basislinie bis zur X-Achse der Devices in 1/10-Grad-Schritten. Bei Windows 9x muss dieserWert mit "lfEscapement" Identisch sein.
fnWeightEnthält oder setzt die Fontstärke (Bold). Ein gültigerWert ist eine der "lfWeight"-Konstanten.
fdwItalicWird hier ein Wert "ungleich 0" übergeben, wird die Schrift kursiv dargestellt.
fdwUnderlineWird hier ein Wert "ungleich 0" übergeben, wird die Schrift unterstrichen dargestellt.
fdwStrikeOutWird hier ein Wert "ungleich 0" übergeben, wird die Schrift durchgestrichen dargestellt.
fdwCharSetBeschreibt die Art der Schriftz.B. türkisch, arabisch, etc. über eine der "lfCharSet"-Konstanten.
fdwOutPrecisionErwartet eine "lfOutPrecision"-Konstante, die die Genauigkeit bei der Fontauswahl angibt.
fdwClipPrecisionErwartet die Genauigkeit mit der die Fontsangepasst werden, wenn Clipping benötigt wird.
fdwQualityLegt die Ausgabequalität fest.
fdwPitchAndFamilyDas Kombinieren von einer der "_PITCH" und einer der "_FF" beschreibt die Font-Familie.
lpszFaceErwartet den Namen desFonts, der verwendet werden soll.

fnWeight Konstanten:

Const FW_DONTCARE = 0
' Standard
Const FW_THIN = 100
' Super Dünn
Const FW_EXTRALIGHT = 200
' Extra Dünn
Const FW_LIGHT = 300
' Dünn
Const FW_NORMAL = 400
' Normal
Const FW_MEDIUM = 500
' Mittel
Const FW_SEMIBOLD = 600
' Etwas Dicker
Const FW_BOLD = 700
' Fett
Const FW_EXTRABOLD = 800
' Extra Fett
Const FW_HEAVY = 900
' Super Fett

Rückgabewert:
Ist die Funktion erfolgreich, so wird der Handle des erstellten Fonts zurückgegeben, andernfallshat die Rückgabe den Wert "0". Unter Windows NT / 2000 / XP können Sie für erweiterteFehlerinformationen die GetLastError-Funktion aufrufen. Wirdder Font nicht mehr benötigt, so geben sie die Ressourcen mit der DeleteObject-Funktion wieder frei.

Beispiel:

Private Declare Function GetTextAlign Lib "gdi32.dll" (ByVal hdc As Long) As Long
Private Declare Function SetTextAlign Lib "gdi32.dll" ( _
  ByVal hdc As Long, _
   ByVal wFlags As Long) As Long
Private Declare Function CreateFont Lib "gdi32.dll" _
  Alias "CreateFontA"  ( _
  ByVal nHeight As Long, _
  ByVal nWidth As Long, _
  ByVal nEscapement As Long, _
   ByVal nOrientation As Long, _
  ByVal fnWeight As Long, _
  ByVal fdwItalic As Long, _
  ByVal fdwUnderline As Long, _
  ByVal fdwStrikeOut As Long, _
  ByVal fdwCharSet As Long, _
  ByVal fdwOutputPrecision As Long, _
  ByVal fdwClipPrecision As Long, _
  ByVal fdwQuality As Long, _
  ByVal fdwPitchAndFamily  As Long, _
  ByVal lpszFace As String) As Long
Private Declare Function ExtTextOut Lib "gdi32" _
  Alias "ExtTextOutA" ( _
  ByVal hdc As Long, _
  ByVal x As Long, _
  ByVal y As Long, _
  ByVal wOptions As Long, _
   lpRect As Any, _
  ByVal lpString As String, _
  ByVal nCount As Long, _
  lpDx As Long) As Long
Private Declare Function SelectObject Lib "gdi32" ( _
  ByVal hdc As Long, _
  ByVal hObject As Long) As Long
Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long
 
Private Type RECT
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type
 
' CreateFont fnWeight-Konstanten
Const FW_DONTCARE = 0  ' Standard
Const FW_THIN = 100  ' Super Dünn
Const FW_EXTRALIGHT = 200  ' Extra Dünn
Const FW_LIGHT = 300  ' Dünn
Const FW_NORMAL = 400  ' Normal
Const FW_MEDIUM = 500  ' Mittel
Const FW_SEMIBOLD = 600  ' Etwas Dicker
Const FW_BOLD = 700  ' Fett
Const FW_EXTRABOLD = 800  ' Extra Fett
Const FW_HEAVY = 900  ' Super Fett
 
' CreateFont fdwCharSet-Konstanten
Const ANSI_CHARSET = 0  ' Ansi Zeichensatz
Const ARABIC_CHARSET = 178  ' Arabisch (NT/2000)
Const BALTIC_CHARSET = 186  ' Baltisch (Win 9x)
Const CHINESEBIG5_CHARSET = 136  ' Chinesisch
Const DEFAULT_CHARSET = 1  ' Standard
Const EASTEUROPE_CHARSET = 238  ' Osteuropäisch (Win 9x)
Const GB2312_CHARSET = 134  ' Englisch
Const GREEK_CHARSET = 161  ' Griechisch (Win 9x)
Const HANGEUL_CHARSET = 129  ' Hangeul
Const HEBREW_CHARSET = 177  ' Hebräisch (NT/2000)
Const JOHAB_CHARSET = 130  ' Johab (Win 9x)
Const MAC_CHARSET = 77  ' Mac (Win 9x)
Const OEM_CHARSET = 255 ' OEM
Const RUSSIAN_CHARSET = 204 ' Russisch (Win 9x)
Const SHIFTJIS_CHARSET = 128  ' ShiftJis
Const SYMBOL_CHARSET = 2  ' Symbol
Const THAI_CHARSET = 222  ' Thailändisch (NT/2000)
Const TURKISH_CHARSET = 162  ' Türkisch (Win 9x)
 
' CreateFont fdwOutPrecision-Konstanten
Const OUT_DEFAULT_PRECIS = 0   ' Benutzt den Standard-Font
Const OUT_DEVICE_PRECIS = 5      ' Benutzt einen Device-Font wenn mehrere Dateien  _
' mit dem selben Namen existieren
Const OUT_OUTLINE_PRECIS = 8   ' (NT/2000) Benutzt eine TrueType-Schriftart  _
' oder Outline-Based Fonts.
Const OUT_RASTER_PRECIS = 6   ' Benutzt einen Raster-Font wenn mehrere Dateien  _
' mit dem selben Namen existieren
Const OUT_STRING_PRECIS = 1    ' Raster-Font für die Enumeration
Const OUT_STROKE_PRECIS = 3    ' (Win 9x) Vector Font für die Enumeration /  _
' (NT/2000) TrueType, Outline-Based oder VectorFont für die Enumeration
Const OUT_TT_ONLY_PRECIS = 7  ' Benutzt eine TrueType-Schriftart
Const OUT_TT_PRECIS = 4    ' Benutzt ein TrueType-Font wenn andere Fonts mit  _
' dem selben Namen existieren
 
' CreateFont fdwClipPrecision-Konstanten
Const CLIP_DEFAULT_PRECIS = 0    ' Standard
Const CLIP_EMBEDDED = 128  ' wird benutzt für eingebettete schreibgeschützte Fonts 
Const CLIP_LH_ANGLES = 16  ' Die Richtung von irgendwelchen Rotationen wird  _
' vom Koordinatensystem festgelegt (gegen den Uhrzeigersinn)
Const CLIP_STROKE_PRECIS = 2  ' Raster Vector oder TrueType Fonts für die Enumeration 
 
' CreateFont fdwQuality-Konstanten
Const ANTIALIASED_QUALITY = 4    ' (Win 9x, NT 4.0, 2000) Die Schriftart wird  _
' immer mit Anitaliasing gezeichnet wenn möglich
Const DEFAULT_QUALITY = 0    ' Standard Qualität
Const DRAFT_QUALITY = 1    ' Das Erscheinen des Fonts ist weniger wichtig als _
' bei PROOF_QUALITY
Const NONANTIALIASED_QUALITY = 3  ' (Win 9x, NT 4.0, 2000) Die Schriftart  _
' wird nicht mit Anitaliasing gezeichnet
Const PROOF_QUALITY = 2    ' Die Qualität der Erscheinung ist wichtiger als  _
' das exakte Übereinstimmen mit den Font-Attributen
 
' CreateFont fdwPitchAndFamily-Konstanten
Const DEFAULT_PITCH = 0  ' Standard
Const FIXED_PITCH = 1  ' Fest
Const VARIABLE_PITCH = 2  ' Variabel
Const FF_DECORATIVE = 80  ' Dekoriert
Const FF_DONTCARE = 0  ' Egal
Const FF_MODERN = 48  ' Modern
Const FF_ROMAN = 16  ' Roman
Const FF_SCRIPT = 64  ' Script
Const FF_SWISS = 32  ' Swiss
 
' Get- / SetTextAlign Rückgabe- / wFlags-Konstanten
Private Const TA_BASELINE = 24 ' Alle Textausgaben erfolgen
Private Const TA_BOTTOM = 8 ' Alle Textausgaben werden unterhalb der  _
' angegebenen Koordinaten ausgegeben
Private Const TA_CENTER = 6 ' Alle Textausgaben werden mittig der  _
' angegebenen Koordinaten ausgegeben
Private Const TA_LEFT = 0 ' Alle Textausgaben werden links von den  _
' angegebenen Koordinaten ausgegeben
Private Const TA_NOUPDATECP = 0 ' Der Aktuelle Punkt wird nicht zum  _
' Referenzpunkt gemacht
Private Const TA_RIGHT = 2 ' Alle Textausgaben werden rechts von den  _
' angegebenen Koordinaten ausgegeben
Private Const TA_TOP = 0 ' Alle Textausgaben werden oberhalb der angegebenen  _
' Koordinaten ausgegeben
Private Const TA_UPDATECP = 1 ' die aktuelle Position wird zum Referenzpunkt gemacht 
Private Const TA_RTLREADING = 256   ' der Text wird wenn möglich von rechts  _
' nach links ausgegeben
 
' ExtTextOut wOptions-Konstanten
Private Const ETO_CLIPPED = 4 ' Der Text wird auf das Ziel zurechtgeschnitten
Private Const ETO_GLYPH_INDEX = &H10 ' (ab Win 95 / NT 4.0 und später) bei  _
' lpString wird die Rückgabe der GetCharacterPlacement-Funktion übergebeben
Private Const ETO_IGNORELANGUAGE = &H1000 ' (Win NT 4.0 und später) Es wird  _
' kein Scripting Support eingeschaltet, dies kann dazu führen, dass der Text  _
' nicht angezeigt werden kann
Private Const ETO_NUMERICSLATIN = &H800 ' (Win 96 / NT 4.0 und später) Wird  _
' benutzt um Europäische Zahlen anzuzeigen
Private Const ETO_NUMERICSLOCAL = &H400 ' (Win 96 / NT 4.0 und später) Wird  _
' benutzt um lokale Zahlen anzuzeigen
Private Const ETO_OPAQUE = 2 ' Die aktuelle Hintergrundfarbe wird verwendet  _
' um die Hintergrundfarbe des Ziels auszufüllen
Private Const ETO_PDY = &H2000 ' (Win 2000 / XP) bei lpDX wird ein Pointer  _
' zu einem 2 Felder großen Array übergeben das die Abstände (x und y)  _
' zwischen den Buchstaben enthält
Private Const ETO_RTLREADING = &H80 ' (Win 95 / NT 4.0 und später bei Ost-  _
' Asiatischen Windows Versionen) Der Text wird wenn möglich von rechts  _
' nach links ausgegeben
' Zeichnet einen Text inmitten des Fensters
Private Sub Command1_Click()
  Dim Retval As Long, hOldFont As Long, Distance() As Long
  Dim OutStr As String
 
  ' Text  für die Ausgabe bestimmt
  OutStr = "VB Api Helpline"
 
  ' Form-Maßeinheit auf Pixel stellen (AutoRedraw muss True sein !!)
  Me.ScaleMode = vbPixels
 
  ' Aktuelle Textausrichtung ermitteln
  Retval = GetTextAlign(Me.hdc)
 
  ' Aktuelle Textausrichtung auswerten
  If CBool(Retval And TA_CENTER) Then Debug.Print "Der Text wird zentriert am Referenzpunkt ausgegeben"
  If CBool(Retval And TA_TOP) Then Debug.Print "Der Text wird oberhalb des Referenzpunktes ausgegeben"
  ' und so weiter...
 
  ' Neue Textausrichtung einstellen (Alle Textausgaben erfolgen zentriert  _
  ' und unterhalb der übergebenen Koordinaten)
  SetTextAlign Me.hdc, TA_CENTER Or TA_BOTTOM Or TA_NOUPDATECP
 
  ' Font erstellen
  Retval = CreateFont(0, 0, 0, 0, FW_BOLD, 0, 0, 0, DEFAULT_CHARSET,  _
  OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,  _
  DEFAULT_PITCH Or FF_DECORATIVE, "Times New Roman")
  If Retval = 0 Then Exit Sub
 
  ' Font der Form zuweisen und alten Font zwischenspeichern
  hOldFont = SelectObject(Me.hdc, Retval)
 
  ' Distanz zwischen den Buchstaben setzen
  ReDim Distance(Len(OutStr) - 1)
  For i = 0 To UBound(Distance)
    Distance(i) = Me.TextWidth(Mid$(OutStr, i + 1, 1)) + 20
  Next i
 
  ' Einen Text ausgeben in der Mitte des Fensters
  ExtTextOut Me.hdc, Me.ScaleWidth / 2, Me.ScaleHeight / 2, ETO_OPAQUE,  _
  ByVal 0&, OutStr, Len(OutStr), Distance(0)
 
  ' Alten Font wiederherstellen und erstellten Font löschen
  DeleteObject SelectObject(Me.hdc, hOldFont)
 
  Me.Refresh
End Sub

Diese Seite wurde bereits 5.424 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2014 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