[VC++ 2005] Font Größe

the incredible Leitman

Erfahrenes Mitglied
Hallo Tutorianer *gg*

Ich möchte in einem Control, sobald die Größe geändert wird, auch die Textgröße ändern...
wie kann ich das machen?

Das Property Size ist nur ein getter, ich kann die Größe der Font also nicht einfach setzen...muss ich jetzt extra eine neue Font erstellen, oder kann ich das auf einem anderen Weg lösen?

Oder gibt es vielleicht eine Methode / Eigenschaft, die die Textgröße dynamisch der Controlgröße anpasst? das wär nämlich superleiwand :D

Hoffe da weiß jemand weiter
mfG
Leitman
 
Hi, danke Cosmo

Ja, mit MeasureString hab ich schon gearbeitet, aber ich dachte damit kann ich lediglich die Größe eines Strings in Pixel messen?
Versteh nicht ganz, inwieweit mir das weiterhelfen könnte *verplantschau*
Kann deinem Gedankensprung leider nicht folgen... :(

Ich dachte einfach, wenn die Größe geändert wird -> neue Font erstellen und zuweisen
C++:
// Pseudo Code in VC++ 
property System::Drawing::Size GridFieldSize
{
	System::Drawing::Size get()
	{
		return System::Drawing::Size(m_grid_field_width,m_grid_field_height);
	}
	void set(System::Drawing::Size gfsz)
	{
		//
		// if Size changed ==> change Font
		//
		if (gfsz->Width > m_grid_field_width || gfsz->Height > m_grid_field_height )
		{
			System::Drawing::Font ^myFont = gcnew Font(...parameter, Size größer)
			this->Font = myFont;
		}
		else if (gfsz->Width < m_grid_field_width || gfsz->Height < m_grid_field_height )
		{
			System::Drawing::Font ^myFont = gcnew Font(...parameter, Size kleiner)
			this->Font = myFont;
		}
		
		m_grid_field_width = gfsz.Width;
		m_grid_field_height = gfsz.Height;
		Size = System::Drawing::Size(m_grid_field_width * GridWidth,m_grid_field_height * GridHeight);
		Invalidate();
	}
}

Aber wenn du was Besseres weißt, nur her damit :D
 
So, funkt erst mal grad so. Ist sicherlich schmutzig aber ich hab jetzt keine Zeit mehr für
um das jetzt fertig zu machen. Du musst jetzt nur noch schauen, das Du auch die Breite des Controls mit erfasst.
Sag Bescheid wenn Du's trotzdem nicht hinbekommst.
 
Zuletzt bearbeitet:
Numm mal lieber das Projekt. Das erste war nicht richtig gepackt.

Ach das ist ja alles nur Übungssache. So rostet man nicht ein wenn man auf Arbeit auf die Zuarbeit anderer wartet...
 

Anhänge

  • 26587attachment.zip
    67,9 KB · Aufrufe: 18
Oh, thx, dachte mir schon da passt was nicht *gg*

Naja... es geht, es tut was... werd mir noch genauer ansehen... vielleicht schick ich dir ein Update :p *lol*

jaja... ewig auf der Suche nach einer neuen Herausforderung *gg*

Edit: hm... muss es auf version 8 für VisualStudio umkonvertieren... aber das sollt der Funktionalität nichts ausmachen oder? ich mein, ich hatte mit 7.1 nicht zu tun, keine Ahnung was es da dür Änderungen gab...:(
 
Zuletzt bearbeitet:
Sollte eigentlich keinen Unterschied machen.
Erstell halt ein neues Projekt und füge die Sourcefiles
  • FontControl.cs
  • TextUtil.cs
  • Margins.cs
hinzu. Kompiliere das Projekt und füge das FontControl zu deiner Toolbox hinzu.
Danach kannst es auf dein Form "ziehen"...
 

Neue Beiträge

Zurück