Font ohne Installation verfügbar machen?



  • Hi

    Ich möchte eine Schriftart in meinem Programm mitliefern und darin benützen ohne dass diese auf dem Rechner installiert werden muss.
    Dazu habe ich mir folgenden Quelltext zusammengebastelt:

    HANDLE hFont;
     TResourceStream *font=new TResourceStream((int)HInstance, "RES_FONT", RT_RCDATA);
     DWORD pcFonts;
     hFont=AddFontMemResourceEx(font->Memory,font->Size,0,&pcFonts);
     if(hFont)
      SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0);
     delete font;
    

    Funktioniert soweit auch tadellos außer dass TFontDialog die Schriftart nicht auflistet. Da ich den entsprechenden MSDN-Eintrag gelesen habe ist mir schon klar, dass die Funktion AddFontMemResourceEx garnicht in der Lage ist einen Font auflistbar zu machen, ich möchte aber, falls irgendwie machbar, auf eine Installation der Schriftart verzichten.
    Mir fällt aber eigentlich fast nichts anderes ein außer mir einen eigenen FontDialog zu basteln.
    Hätte vielleicht einer von euch eine Idee?

    Gruß
    rean





  • Diese Lösung ist mir durchaus bekannt.
    Aber dafür muss ich die entsprechende Font-Datei auf den ausführenden Rechner laden was ich ja gerade nicht haben möchte.



  • Hallo

    TFontDialog zeigt nunmal nur genau die installierten Fonts an.

    bis bald
    akari



  • rean schrieb:

    Diese Lösung ist mir durchaus bekannt.

    Na dann sag das auch! Die Kristallkugeln gehen leider ständig kaputt.

    rean schrieb:

    Aber dafür muss ich die entsprechende Font-Datei auf den ausführenden Rechner laden [...]

    Das Bereithalten im Programmverzeichnis ist doch keine "Laden" (oder "Installieren").


Anmelden zum Antworten