Programación de élite
Fuente Lógica
Public Const LF_FACESIZE = 32 'Nombre de fuente más largo
Public Const SYSTEM_FONT = 13
Tipo LOGFONT p>
lfAltura tanto tiempo
lfAncho tan largo
lfEscape tan largo
lfOrientación tan largo
lfPeso tanto tiempo p>
lfCursiva como byte
lfSubrayado como byte
lf Tachado como byte
lfCharSet como byte
lf precisión de salida como bytes
lfClipPrecision como bytes
lfQuality como bytes
lfPitchAndFamily como bytes
palabras Forma de sección de lfFaceName(LF_FACESIZE)
Tipo de finalización
Familia de fuentes
Constante pública VARIABLE_PITCH = 2
Const pública FF_DONTCARE = 0 ' No importa.
Public Const FF_ROMAN = 16' Ancho de fuente variable, como Times Roman, Century 'Libros de texto, etc.
Public Const FF_SWISS = 32' con ancho y serif variables, como Helvetica, Swiss, etc.
Public Const FF_MODERN = 48 'Tiene un ancho específico, serif es opcional.
Como pica, elite, express, etc.
Public Const FF_SCRIPT = 64 'Escritura a mano, como cursiva.
Public Const FF_DECORATIVE = 80' Fuentes especiales, como el inglés antiguo.
Función de fuente GDI
Declarar la función CreateFontIndirect Lib "gdi32 "alias" createfontindrecta "(lpLogFont como fuente de registro) como Long
Declarar la función seleccionar objeto Lib "GDI 32" (ByVal hdc es Long, ByVal hObject es Long) se declara como Long
Declarar la función eliminar objeto Lib "GDI 32 "(ByVal ho object As Long) como Long
Declarar la función GetStockObject Lib "GDI 32" (ByVal nIndex As Long) como Long
Aliasar la función GDIGetObject Lib "gdi32" como "get objecta" (ByVal ho object as Long, ByVal nCount as Long, lpObject as Any) declarar como Long
Declarar la función TextOut Lib "GDI 32" alias "TextOutA" (ByVal hdc es Long, ByVal x es Long, ByVal y es Long, ByVal lpString es String, ByVal nCount es Long) Declarar la función lstrlen Lib "KERNEL32 "alias" lstrlenA "(ByVal lpString As String) como Long
Declarar la función GetWindowDC Lib "user 32" (ByVal hwnd As Long) Declarada como Long
Sub RotPrint (ByVal hDestDC es Long, Text es String, x es Double, y es Double, LineAngle es Double)
Dim hFont tiene la misma longitud, hOldFont tiene la misma longitud , R siempre y cuando
Atenúe la fuente para registrar la fuente
hOldFont = SelectObject(hDestDC, GetStockObject(SYSTEM_FONT))
GDIGetObject hOldFont, Len(Font), Font
Rellene la estructura de fuente del registro
font .lf escape = lineangle * 10 'Muestre el ángulo entre la línea de fuente y la parte inferior de la página horizontal (la unidad es 1/10 de grado). ).
Debe ser una fuente de punto variable.
font .lfpitchandfamily = VARIABLE _ PITCH o FF_DONTCARE
Crear fuente
hFont = CreateFontIndirect(Font)
Seleccionar fuente rotada p>
p>
R = SelectObject(hDestDC, hFont)
Mostrar fuente
TextOut hDestDC, x, y, Text, lstrlen(Text)
Restaurar fuente original
hFont = SelectObject(hDestDC, hOldFont)
Eliminar la fuente creada.
Eliminar objeto
DeleteObject hOldFont
Conector final