Fonts aus der Ressource ??



  • Hallo !!

    Wie stelle ich das an, das ich ein Font (*.fon oder *.ttf)in der Ressource packe und diesen dann in meinem Dialog (speziell für ein Listfeld) benutzen kann ? Also ich möchte den passenden Zeichensatz gleich mitliefern.
    Wie ich einen Font benutze und zu ein Element hinzufüge ist schon klar.
    Aber wie bekomme ich ihn aus der Ressource ?? Geht das überhaupt oder kann man nur Fonts aus dem System Ordner "FONTS" benutzen ????

    Danke schon mal im **Voraus ...

    AndOne :D**



  • 5 FONT  CMROMAN.FNT
    

    so bindest du den Font in dein Resource-Script (Irgendwas.rc) mit ein.

    Um den Font aus den Resourcen während der Laufzeit zu holen dürfte folgendes funktionieren...

    // Erstmal Zugriff auf die Resource holen
    HINSTANCE hInst = AfxGetResourceHandle();
    HRSRC hRsrc = ::FindResource(hInst, MAKEINTRESOURCE(5), "FONT");
    ASSERT(hRsrc);
    
    // Wenn hRsrc nicht NULL ist Länge und Inhalt der Resource holen
    DWORD len = SizeofResource(hInst, hRsrc);
    HGLOBAL* lpRsrc = LoadResource(hInst, hRsrc);
    ASSERT(lpRsrc);
    

    Jetzt ist nur noch das Problem, dass jetzt natürlich einen CFont haben willst. Ich denke, dass dies über

    myfont.CreateFontIndirect(lpRsrc);
    

    möglich ist... (Bin mir aber nicht sicher 🙄)

    Wenn alle Stricke reissen musst du die Daten aus lpRsrc in eine Font-Datei schreiben und diesen in der Registry eintragen, so dass du ihn dann nicht bei jedem Programmstart aus den Resourcen holen musst :). Naja, probiers einfach mal aus und meld dich nochmal falls es nicht funktioniert...

    [ Dieser Beitrag wurde am 03.11.2002 um 15:33 Uhr von MaSTaH editiert. ]


Anmelden zum Antworten