CreateFont frage



  • hi,

    CreateFont( height,.....

    ich verstehe nicht ganz die grössen angabe .. im tutorial steht -24 und ist ziemlich gross .. wenn ichs auf -8 setze (keine ahnung wieso "-") ist es total verpixelt.

    ich möchte eigentlich ganz normal schriftgrösse 8-10 setzen und auch so sehen.
    🙄



  • Schau auf meine Homepage (siehe Signatur). Da gibts eine kleine Klasse CFont zum Runterladen.



  • forensuche ist schon was feines ^^

    CreateFont(-MulDiv(FontSize, GetDeviceCaps(hDC, LOGPIXELSY), 72),....

    scheinbare lösung 😉



  • habe da aber ne verständnis frage ..

    GLFont2D::GLFont2D()
    {
    	f_Height = 8;	
    	BuildFont();						}
    
    GLFont2D::~GLFont2D()
    {
    	KillFont();
    }
    
    GLvoid GLFont2D::KillFont()								// Delete The Font From Memory
    {
    	glDeleteLists(f_Base, 96);							// Delete All 96 Characters
    }
    
    GLvoid GLFont2D::Print(const char *fmt, ...)
    {
    	char		text[256];								// Holds Our String
    	va_list		ap;										// Pointer To List Of Arguments
    
    	if (fmt == NULL)									// If There's No Text
    		return;											// Do Nothing
    
    	va_start(ap, fmt);									// Parses The String For Variables
    	    vsprintf(text, fmt, ap);						// And Converts Symbols To Actual Numbers
    	va_end(ap);											// Results Are Stored In Text
    
    	glPushAttrib(GL_LIST_BIT);							// Pushes The Display List Bits
    	glListBase(f_Base - 32);							// Sets The Base Character to 32
    	glCallLists(strlen(text), GL_UNSIGNED_BYTE, text);	// Draws The Display List Text
    	glPopAttrib();										// Pops The Display List Bits
    }
    
    GLvoid GLFont2D::BuildFont()
    {
    	HFONT	font;
    	HFONT	oldfont;
    
    	f_Base = glGenLists(96);
    
    	font = CreateFont(	-MulDiv(f_Height, GetDeviceCaps(GL_Window::GetInstanz().GetHDC(), LOGPIXELSY), 72),// Height Of Font
    						0,								// Width Of Font
    						0,								// Angle Of Escapement
    						0,								// Orientation Angle
    						FW_NORMAL,						// Font Weight
    						FALSE,							// Italic
    						FALSE,							// Underline
    						FALSE,							// Strikeout
    						ANSI_CHARSET,					// Character Set Identifier
    						OUT_TT_PRECIS,					// Output Precision
    						CLIP_DEFAULT_PRECIS,			// Clipping Precision
    						ANTIALIASED_QUALITY,			// Output Quality
    						FF_DONTCARE|DEFAULT_PITCH,		// Family And Pitch
    						"Courier New");					// Font Name
    
    	oldfont = (HFONT)SelectObject(hDC, font);
    	wglUseFontBitmaps(hDC, 32, 96, f_Base);
    	SelectObject(hDC, oldfont);
    	DeleteObject(font);
    }
    

    zum einen wieso kann ich BuiltFont() nicht im Konstruktor aufrufen .. zumindest bringt das nichts

    GLFont2D::GLFont2D()
    {
    	f_Height = 8;	
    	BuildFont();						}
    

    zum anderen

    wieso schreibt er text obwohl ich spasshalber mal BuiltFont() demarkiert habe 😕



  • Naja, wenn du auf gut gemeinte Ratschläge von Helfenden nicht reagierst, dann wird dir wohl keiner helfen.



  • @WebFritzi .. bist du beleidigt oder sowas?

    ich habe deine seite besucht und mir CFont geladen .. allerdings ist es keine klasse und ich brauchs für opengl und müsste deines genauso anpassen wie ich dieses anpasse und erweitere also kein wirklicher nutzen für mich .. und meine letzte frage war zum verstehen, wieso er es so macht .. nunja, jedenfalls sehr merkwürdige antwort von dir.



  • winapii schrieb:

    allerdings ist es keine klasse

    *lol* Entweder du hast es dir nicht angeschaut, oder hast halt keine Ahnung von auch nur EIN WENIG C++. Natürlich ist das ne Klasse!

    bist du beleidigt oder sowas?

    Oder sowas, ja. Man bedankt sich wenigstens, wenn jemand versucht, einem zu helfen.



  • .. ich find sehr gut das hier leuten hilfst.
    aber meine frage oben war wie ich das mit createfont machen muss, das grösse stimmt und nicht wo ich ne fertige klasse her bekomme.
    ich wollte etwas VERSTEHEN und LERNEN!
    zumal wir die antwort fast zeitgleich gepostet haben .. ich trotzdem deine seite besuchte um eventuell noch mehr rauszufinden.
    und so nebenbei .. mir war nicht bewusst das ne klasse ohne "class" gibt.



  • winapii schrieb:

    mir war nicht bewusst das ne klasse ohne "class" gibt.

    Gibt's auch nicht. Schau mal in die Header-Datei, du Nudel.
    Ist ja schon alles OK. Aber ich finde, man sollte sich trotzdem bedanken - auch, wenn einem die Hilfe nicht besonders weiterhilft. Man kann doch sowas schreiben wie "Danke, aber hilft mir deshalb und deswegen nicht seher viel weiter."



  • danke lieber WebFritzi ^^ *möcht ja keinen verärgern*

    aber eventuell solltest mal die "Fonts.ZIP" selber mal saugen .. eventuell haste ne alte version oder ich was falsches gesaugt.
    auf jedenfall ist das keine klasse -.-



  • winapii schrieb:

    ich habe deine seite besucht und mir CFont geladen ..

    Nein, das hast du nicht! Du hast dir Fonts.ZIP geholt und nicht CFont.ZIP. Da musst du auf meiner HP schon in die Klassen-Sektion - nicht in die Unit-Sektion.

    P.S.: Bitte, lieber winapii. Gern geschehen. 😉



  • 1.) Ist f_Height eine Member-Variable - also in GLFont2D::BuildFont() bekannt?
    2.) Wo und wie genau gibst du überhaupt deinen Text aus - in wglUseFontBitmaps()?


Anmelden zum Antworten