Announcement

Collapse
No announcement yet.

TTF Font progammatisch aktivieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • TTF Font progammatisch aktivieren

    Hallo,

    gibt es die Möglichkeit einen TTF Font beim System anzumelden, ohne ihn im Schriftenordner zu installieren ?

    Der Hintergrund: Ich habe ein Plugin ( ein DLL ) und benutze eine selbst entworfene Schrift. Die Schrift ist in den Resourcen der DLL enthalten und ich möchte sie nur dann programmatisch beim System anmelden, wenn das Plugin tatsächlich benutzt wird.

    Vielen Dank für jeden Hinweis

    Peter

  • #2
    AddFontRessource sowie RemoveFontRessource ist dafür vorgesehen.

    Comment


    • #3
      super, danke !

      Peter

      Comment


      • #4
        Ich habe noch eine Frage dazu:

        ich habe den TTF Font "test.ttf" in den Resourcen und hole ihn so in den Speicher:

        FindResource( ... , "test.ttf", ... )
        LoadResource()
        LockResource()

        Das tut's soweit.

        LoadResource gibt mir aber einen HGLOBAL auf die Font-Daten, aber ich brauche in AddFontResource() einen LPCTSTR als Argument und AddFontResource( "test.ttf" ) tut's nicht.

        Weiß jemand, wie das geht ?

        Peter

        Comment


        • #5
          schon mal gecastet?
          Christian

          Comment


          • #6
            wie sollte ich hier casten ?

            Comment


            • #7
              Bei mir funktioniert

              AddFontResource("sdada.ttf");

              einwandfrei und casten wäre

              AddFontResource(( LPCTSTR )"sdada.tff");
              Christian

              Comment


              • #8
                Das tut's nicht, aber vielleicht liegt der Fehler auch woanders. Da ich mich selber mit Resource Dateien noch nicht richtig gut auskenne, beschreibe ich mal kurz, wie ich vorgegangen bin:

                1. im .rc File habe ich den Font so eingetragen:

                Code:
                test.ttf	DATA   "test.ttf"
                2. ich lade den Font so aus den Resourcen:

                Code:
                HRSRC rsrc = FindResource(myInstance, "test.ttf", "DATA");
                	
                if (rsrc) {
                	// den Font laden
                	HGLOBAL resDataLoad = LoadResource (myInstance, rsrc);
                	if (resDataLoad) {
                		LPVOID resData = LockResource (resDataLoad);
                		if (resData) { 
                		     int err = AddFontResource( (LPCTSTR)"test.ttf" );
                	}
                }
                Bis AddFontResource() ist alles ok und die Grösse der geladenen Daten entspricht auch der Grösse des Font.

                Comment


                • #9
                  Ich habe noch etwas rumprobiert, es aber bisher nicht ans laufen bekommen.

                  Weiß niemand wie das geht ?

                  Danke

                  Peter

                  Comment

                  Working...
                  X