| |
|
|
|
Descripción:
ChooseFont producido una Diálogo a Auswahl uno Fonts.
Deklaration:
Def @ChooseFont(1) ! COMDLG32.DLL,ChooseFontA
Parámetro:
1.Parámetro: CHOOSEFONT Struktur oder 60 Byte große Bereichsvariable. => -Byte 0-3 = Größe el Bereichsvariablen en Bytes -Byte 4-7 = Handle la ventana, en el el Diálogo producido voluntad se. -Byte 8-11 = 0, oder si en Byte 20 CF_PRINTERFONTS angegeben wurde, el Device-Context des Druckers, en dessen verfügbare Fonts a listen. -Byte 12-15 = Zeiger en una LOGFONT Struktur (60 Byte großer Zona), el Angaben encima el gewählten Font aufnimmt. Wenn en Byte 20 CF_INITTOLOGFONTSTRUCT angegeben wurde, kann esta Struktur auch dazu verwendet voluntad, el Diálogo a inicializar (siehe auch Rückgabewert). -Byte 16-19 = Wenn el Diálogo geschlossen wurde, es hier el Größe des gewählten Fonts en 1/10 uno Punktes. -Bytes 20-23 = Flags, el el Aussehen y el Initialisierung des Dialogs beeinflussen. Flags puede con | addiert voluntad. $200 = (CF_APPLY) Der Diálogo enthält una ‘Übernehmen’ Button. $400 = (CF_ANSIONLY) Der Diálogo enthält no Symbolfonts (no para indows95). $3 = (CF_BOTH) Der Diálogo enthält Drucker y Bildschirmfonts. $40000 = (CF_TTONLY) Der Diálogo enthält sólo Truetype Fonts. $100 = (CF_EFFECTS) ‚Unterstreichen’, ‚Durchstreichen’ y una Fontfarbe puede gewählt voluntad. $8 = (CF_ENABLEHOOK) Aktiviert el Hookfunktion de Byte 32. $10 = (CF_ENABLETEMPLATE) Aktiviert el Presentación en Byte 36. $20 = (CF_ENABLETEMPLATEHANDLE) Aktiviert el Presentación en Byte 40. $4000 = (CF_FIXEDPITCHONLY) Nur Fonts con gleicher Zeichengröße el Buchstaben y Signo untereinander voluntad en el Diálogo adecuado. $10000 = (CF_FORCEFONTEXIST) Fehlermeldung en no existierendem Font. $40 = (CF_INITTOLOGFONTSTRUCT) El LOGFONT Struktur de Byte 12 se benutzt a Controls des Dialogs a inicializar. $2000 = (CF_LIMITSIZE) Lo voluntad sólo Fontgrößen gelistet, el unterhalb des Wertes de Byte 56 y oberhalb des Wertes de Byte 52 mentira. $80000 = (CF_NOFACESEL) Es no Schriftart wählbar. $800000 = (CF_NOSCRIPTSEL) ‚Scvript’ kann no ausgewählt voluntad. $100000 = (CF_NOSTYLESEL) ‚Schriftschnitt’ kann no ausgewählt voluntad. $200000 = (CF_NOSIZESEL) Schriftgröße kann no ausgewählt voluntad. $1000 = (CF_NOSIMULATIONS) El ‚Voranzeige’ se ausgeschaltet. $800 = (CF_NOVECTORFONTS) $1000000 = (CF_NOVERTFONTS) Nur horizontal ausgerichtete Fonts voluntad gelistet. $2 = (CF_PRINTERFONTS) Lo voluntad sólo Druckerfonts gelistet. $20000 = (CF_SCALABLEONLY) Lo voluntad sólo skalierbare Fonts gelistet. $1 = (CF_SCREENFONTS) Lo voluntad sólo Bildschirmfonts gelistet. $400 = (CF_SCRIPTSONLY) $400000 = ( CF_SELECTSCRIPT) $4 = (CF_SHOWHELP) Ein Hilfebutton se adecuado. $80 = (CF_USESTYLE) Auf Byte 44 befindet el Adresse uno Buffers con el String des ‚Schriftschnitts’ el gewählt wurde. Als Entrada es hier el voreingestellte String des Schriftschnitts. Dieser Flag läßte todos Inputparameter el LOGFONT Struktur ungültig voluntad, el el Schriftschnitt spezifizieren. $8000 = (CF_WYSIWYG) Nur Fonts el en el Drucker y el Bildschirm verfügbar son voluntad gelistet. -Byte 24-27 = Farbwert el voreingestellten Farbe para el Font. Kehrt el Función zurück, es hier el gewählte Farbwert. -Byte 28-31 = Platz para Daten, el el Anwendung a el Hookfunktion envía (kann 0 ser). -Byte 32-35 = Adresse uno Hookfunktion, el Messages des Dialoges abfängt (kann 0 ser – siehe Flags a Byte 20). -Byte 36-39 = Adresse uno Cuerdas, el una Presentación para el Diálogo angibt (kann 0 ser – siehe Flags a Byte 20). -Byte 40-43 = Handle en una Presentación para el Diálogo (kann 0 ser – siehe Flags a Byte 20). -Byte 44-47 = Adresse uno Bereichsvariablen, el una String a Initialisierung des ‚Schriftschnittcontrols’ enthält (kann 0 ser – siehe Flags a Byte 20). -Byte 48-49 = Gibt el Art des ausgewählten Fonts a.=> $100 = (BOLD_FONTTYPE) fett $200 = (ITALIC_FONTTYPE) kursiv $4000 = (PRINTER_FONTTYPE) Druckerschriftart $400 = (REGULAR_FONTTYPE) standard $2000 = (SCREEN_FONTTYPE) Bildschirmschriftart $8000 = (SIMULATED_FONTTYPE) simulado -Byte 50-51 = 0 -Byte 52-55 = Minimal zulässige Fontgröße (kann 0 ser – siehe Flags a Byte 20). -Byte 56-59 = Maximal zulässige Fontgröße (kann 0 ser – siehe Flags a Byte 20).
Rückgabewert:
1 en Erfolg, 0 en Misserfolg. El Angaben a el gewählten Font voluntad bajo anderem en el 60 Byte großen LOGFONT Struktur abgelegt. Als Entrada kann esta Struktur auch a Initialisierung des Dialoges genutzt voluntad. => -Byte 0-3 = Höhe des Font. Steht hier 0, se una Defaultwert genommen. Berücksichtigt se el Absolutwert sin Vorzeichen. -Byte 4-7 = Breite des Font. Steht hier 0, se una Defaultwert genommen. Berücksichtigt se el Absolutwert sin Vorzeichen. -Byte 8-11 = Gibt el Winkel zwischen el Neigungsvektor y X-Ahse des Geräts en zehntel Grad a. -Byte 12-15 = Gibt el Winkel zwischen el Grundachse uno Zeichens y X-Achse des Gerätes en zehntel Grad a. -Byte 16-19 = Valor zwischen 0 y 1000, el el Schriftdicke des Fonts beschreibt. 0 = (FW_DONTCARE) unbestimmt 100 = (FW_THIN) dünn 200 = (FW_EXTRALIGHT/ FW_ULTRALIGHT) 300 = (FW_LIGHT) 400 = (FW_NORMAL/ FW_REGULAR) normal 500 = (FW_MEDIUM) 600 = (FW_SEMIBOLD/ FW_DEMIBOLD) 700 = (FW_BOLD) fett 800 = (FW_EXTRABOLD/ FW_ULTRABOLD) 900 = (FW_HEAVY/ FW_BLACK) -Byte 20 = 1 para kursiv -Byte 21 = 1 para unterstrichen -Byte 22 = 1 para durchgestrichen -Byte 23 = Flag para el Buchstabensatz.=> $0 = (ANSI_CHARSET) $1 = (DEFAULT_CHARSET) $2 = (SYMBOL_CHARSET) $80 = (SHIFTJIS_CHARSET) $86 = (GB2312_CHARSET) $81 = (HANGEUL_CHARSET) $88 = (CHINESEBIG5_CHARSET) $FF = (OEM_CHARSET) $82 = (JOHAB_CHARSET) $B1 = (HEBREW_CHARSET) $B2 = (ARABIC_CHARSET) $A1 = (GREEK_CHARSET) $A2 = (TURKISH_CHARSET) $DE = (THAI_CHARSET) $EE = (EASTEUROPE_CHARSET) $CC = (RUSSIAN_CHARSET) $4D = (MAC_CHARSET) $BA = (BALTIC_CHARSET) -Byte 24 = El gewünschte Ausgabegenauigkeit.=> $0 = OUT_DEFAULT_PRECIS) Defaultverhalten des Font-Mappers. $5 = (OUT_DEVICE_PRECIS) Der Font-Mapper nimmt una Geräte-Font, si mehre Fonts con gleichem Namen disponible son. $8 = (OUT_OUTLINE_PRECIS) Der Font-Mapper wählt Truetype Font oder una otro Outline-Font. $6 = (OUT_RASTER_PRECIS) Der Font-Mapper nimmt una Raster-Font, si mehre Fonts con gleichem Namen disponible son. $7 =(OUT_TT_ONLY_PRECIS) Der Font-Maper wählt una Truetype Font. $4 = (OUT_TT_PRECIS) Der Font-Maper wählt una Truetype Font si mehrer Fonts con gleichem Namen disponible son. -Byte 25 = Ein Flag para el Anpassungsgenauigkeit. Dieser Valor definiert, como Signo zugeschnitten voluntad, el außerhalb des Clipping-Bereichs mentira. $0 = (CLIP_DEFAULT_PRECIS) $80 = (CLIP_EMBEDDED) $10 = (CLIP_LH_ANGLES) -Byte 26 = Ein Flag, para el gewünschte Ausgabequalität. $0 = (DEFAULT_QUALITY) Das Erscheinungsbild el Schrift juega ningún papel. $1 = (DRAFT_QUALITY) Das Erscheinungsbild el Schrift es weniger wichtig como en PROOF_QUALITY. $2 = (PROOF_QUALITY) El Zeichenqualität el Schrift es wichtiger como el exakte Übereinstimmung el Atributos. -Byte 27 = Ein Flag para el ‚Durchschuss’ el Schriftart => $0 = (DEFAULT_PITCH) $1 = (FIXED_PITCH) $2 = (VARIABLE_PITCH) evtl. In Addition (|) con un el folgenden Flags para el ‘Fontfamilie’:=> $0 = (FF_DONTCARE) $50 = (FF_DECORATIVE) $0 = (FF_MODERN) $10 = (FF_ROMAN) $40 = (FF_SCRIPT) $20 = (FF_SWISS) Byte 28-59 = String con el Namen des gewählten Fonts, oder en Initialisierung el Name el Voreingestellten Fonts.
Beispiele:
KompilierenMarcaSeparaciónDef @ChooseFont(1) ! "COMDLG32.DLL","ChooseFontA"
Declare Choosefont#,LOGFONT#,BUF#,BUF&,FETT%,Kursiv%,Unterstrichen%
Declare Font&
SetTruecolor 1
Windowstyle 31
Windowtitle "Fontauswahldialog"
Window 0,0-640,440
DIM LOGFONT#,60
DIM Choosefont#,60
DIM BUF#,32
Clear BUF#
String buf#,0="Standard"
Clear Choosefont#
Long Choosefont#,0=60
Long Choosefont#,4=%hwnd
Long Choosefont#,12=LOGFONT#
Long Choosefont#,20=$800 | $20000 | $400 | $80 | $100 | $40000 | $1 | $40 + $800000
Long Choosefont#,44=BUF#
LET BUF&=BUF#
Clear Logfont#
Long LOGFONT#,0=20
Long Logfont#,4=0
Long Logfont#,12=200
Long Logfont#,16=400
Byte Logfont#,20=1
Byte Logfont#,26=1
String Logfont#,28="Times New Roman"
@ChooseFont(Choosefont#)
IF @INSTR("KURSIV",@UPPER$(@String$(Buf#,0)))>0
LET KURSIV%=1
endif
IF @INSTR("FETT",@UPPER$(@String$(Buf#,0)))>0
LET FETT%=1
ENDIF
IF @Byte(LogFont#,21)=1
LET Unterstrichen%=1
endif
IF @Byte(LogFont#,22)=1
@Messagebox("Durchstreichen will ich heute nicht!","Hinweis",64)
endif
ADDSTRING "Font="+@STRING$(LOGFONT#,28)
ADDSTRING "Höhe="+@STR$(@LONG(Logfont#,0))
ADDSTRING "Breite="+@STR$(@LONG(Logfont#,4))
ADDSTRING "Fett="+@STR$(Fett%)
ADDSTRING "Kursiv="+@STR$(Kursiv%)
ADDSTRING "Unterstrichen="+@STR$(Unterstrichen%)
ADDSTRING "Farbe="+@STR$(@Long(Choosefont#,24))
USEFONT @STRING$(LOGFONT#,28),@ABS(@LONG(Logfont#,0)),@ABS(@Long(Logfont#,4)),Fett%,Kursiv%,Unterstrichen%
Textcolor @Long(Choosefont#,24),@RGB(255,255,255)
Drawtext 0,0,"Hallo"
@LIstbox$("Das wurde gewählt:",1)
DISPOSE LOGFONT#
DISPOSE CHOOSEFONT#
Dispose buf#
While 0=0
Waitinputclass=s4 href='./../../funktionsreferenzen/XProfan/wend/'>Wend
[keywords:008d4ad7f3] Font auswählen Auswahl Schriftart Schriftfarbe kursiv fett unterstrichen [/keywords:008d4ad7f3] |
|
|
| |
|
|