Schriftart einbinden
-
Gibt es eine Möglichkeit spezielle Schriftarten für den Dialog als Ressource einzubinden?
Möchte eine Installation vermeiden.
Gruß dr. i
-
- Die Font Datei im Ressource Editor öffnen
- Font Ressourceb als .FNT Dateien exportieren
- Die .FNT Dateien in Dein Projekt als Ressourcen hinzufügen.
- AddFontResource an der entsprechenden Stelle aufrufenAber Achtung bzgl. Copyrights!
-
ok, AddFontResource. das sieht schon mal nicht schlecht aus. allerdings sieht es so aus als lade die Funktion den font aus einer Datei!?
int AddFontResource( LPCTSTR lpszFilename // font file name );
möchte die schriftart da aber ungern als datei mitliefern.
Die Prozedur:
- Die Font Datei im Ressource Editor öffnen
- Font Ressourceb als .FNT Dateien exportieren
- Die .FNT Dateien in Dein Projekt als Ressourcen hinzufügen.bekomm ich nicht so ganz hin. Vielleicht kannst Du das noch mal etwas genauer erklären..?dangö
-
Falsche Funktion genannt AddFontMemResourceEx macht was Du möchtest.
Ich bin mir nicht sicher ob diese Funktionen eben FON Dateien verwenden können. FON Dateien selbst sind DLL's die selbst wieder FNT Ressourcen beinhalten. Deshalb muss meines Erachtens die FON Datei in FNT Ressourcen zerlegt werden. Das kannst Du mit dem Ressouurce Editor des VS machen indem Du einfach die FON Datei mit VS öffnest.
-
ich such mir hier echtn wolf mit den font resourcen..
also ich hab weder ne FON noch FNT. Ich hab eine otf Datei, und keine Ahnung was ich damit anstellen soll. Die als Datei per AddFontResource() zu laden funktioniert . Die als Ressource einzubinden...
Einen Ressourcen typ "font" oder sowas gibt des bei meinem resourcen editor nicht.? ODer bin ich nur zu blöd den zu bedienen.
-
Dann versuch es doch mal mit der OTF Datei...
Mit Open Type Fonts kenne ich mich nicht aus! Ich habe das nur in der Vergangenheit mit klassischen FON und FNT Dateien gemacht.
-
also, ich hab jetzt mal die otf als benutzerdefinierte resource "schrift" importiert, und schreib in InitInstance() vorm Aufrufen des dialogs:
HRSRC hRes = ::FindResource(NULL,MAKEINTRESOURCE(IDR_SCHRIFT1),"SCHRIFT"); ASSERT(hRes); HGLOBAL hResData = ::LoadResource(NULL,hRes); PVOID lpRes= ::LockResource(hResData); ASSERT(hResData);
das benutz ich dann in der AddFontMemResourceEx() und sende noch die WM_FONTCHANGE.
klappt sogar. blos beim 2.rechner, wo font nicht installiert ist immer erst beim zweiten starten der .exe, nach jedem neustart.
-
also, es wurde jetzt nochmal auf anderen rechner getestet.
Es klappt tatsächlich immer erst beim zweiten Start! Hat da jemand eine Erklärung für?€: also wenn ich zweimal AddFont... aufrufe gehts.. komisch