Red de conocimiento informático - Aprendizaje de programación - Programación de élite

Programación de élite

Opción Explícita

Fuente Lógica

Public Const LF_FACESIZE = 32 'Nombre de fuente más largo

Public Const SYSTEM_FONT = 13

Tipo LOGFONT

lfAltura tanto tiempo

lfAncho tan largo

lfEscape tan largo

lfOrientación tan largo

lfPeso tanto tiempo

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>

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