Mit ADD USER FONTS kann ein Programm eigene Fonts zu den von der Zeichensatzauswahl angezeigten Fonts hinzufügen. Die ID dieser Fonts muß größer als 65535 sein. Außerdem muß im Strukturelement <display> der Zeiger auf eine Anzeigefunktion eingetragen werden.
Deklaration: WORD fnts_add( FNT_DIALOG *fnt_dialog, FNTS_ITEM *user_fonts ); Aufruf: ret = WORD fnts_add( fnt_dialog, user_fonts ); Variable Belegung Bedeutung Eingaben: contrl[0] 185 fnts_set contrl[1] 1 Einträge in intin contrl[3] 2 Einträge in addrin intin[0] 0 fnts_add addrin[0] fnt_dialog Zeiger auf Verwaltungsstruktur addrin[1] user_fonts Zeiger auf programmeigene Fonts Ausgaben: contrl[2] 1 Einträge in intout contrl[4] 0 Einträge in addrout intout[0] ret 0: Fehler 1: alles in Ordnung Deklaration von FNTS_ITEM: typedef struct _fnts_item { struct _fnts_item *next; /* Zeiger auf den nächsten Font oder 0L (Ende der Liste) */ UTXT_FN display; /* Zeiger auf die Anzeige-Funktion für applikationseigene Fonts */ LONG id; /* ID des Fonts, >= 65536 für applikationseigene Fonts */ WORD index; /* muß 0 sein, da kein VDI-Font */ BYTE mono; /* Flag für äquidistante Fonts */ BYTE outline; /* Flag für Vektorfont */ WORD npts; /* Anzahl der vordefinierten Punkthöhen */ BYTE *full_name; /* Zeiger auf den vollständigen Namen */ BYTE *family_name; /* Zeiger auf den Familiennamen */ BYTE *style_name; /* Zeiger auf den Stilnamen */ BYTE *pts; /* Zeiger auf Feld mit Punkthöhen */ LONG reserved[4]; /* reserviert, müssen 0 sein */ } FNTS_ITEM; typedef void (cdecl *UTXT_FN)( WORD x, WORD y, WORD *clip_rect, LONG id, LONG pt, LONG ratio, BYTE *string );