Seite 1 von 1

Alternative zu GetFullTextExtent..?

Verfasst: Donnerstag 4. März 2010, 09:34
von mutetella
Hallo,

ich stehe vor dem Problem, dass ich für einen bestimmten Font die Höhe samt Descend benötige, bevor ich ein DC-Objekt anlege.

Gibt es eine Möglichkeit?

Danke schon mal....

Gruß
mutetella

Verfasst: Donnerstag 4. März 2010, 13:29
von HWK
Hilft wx.GraphicsContext.GetTextExtent?
MfG
HWK

Verfasst: Donnerstag 4. März 2010, 17:17
von mutetella
Nee, leider nicht, weil sowohl bein DC- wie auch bein GC-Objekt benötige ich ein wxWindow zum Instanziieren. Und genau da liegt das Problem. Bevor ich ein wxWindow erstelle möchte ich eine Setuproutine durchlaufen lassen, die mir alle nötigen Parameter, wie eben auch heigth und descent eines Font, erstellt. Aber ohne wxWindow kein DC/GC, ohne DC/GC keine TextExtend-Methoden.

Trotzdem danke....

Gruß
mutetella

Verfasst: Donnerstag 4. März 2010, 18:04
von HWK
Erstell doch erst mal ein Dummy-Window, um die entsprechenden Werte des/der Fonts zu erhalten. Du brauchst es ja nicht anzuzeigen.
MfG
HWK

Verfasst: Donnerstag 4. März 2010, 22:38
von mutetella
Ja, so werd' ich das wohl machen müssen. Gefällt mir halt nicht wirklich, ein Window zu erstellen, nur um an ein paar Werte zu kommen.... :(

Aber wenn's nicht anderst geht...

Gruß
mutetella

Verfasst: Freitag 5. März 2010, 15:15
von HWK
Ich glaube, es gibt Schlimmeres. :)
MfG
HWK

Verfasst: Montag 29. März 2010, 07:35
von mutetella
Für alle, die ein ähnliches Problem haben:

Bin durch Zufall darauf gestoßen, dass sich wxBufferedDC-Instanzen auch ohne Übergabe eines Window erstellen lassen. Lediglich ein Dummy-Bitmap wird benötigt. Beispiel:

Code: Alles auswählen

dummy = wx.EmptyBitmap(10, 10)
dc=wx.BufferedDC(None, dummy)
dc.GetFullTextExtend("BlaBla", font)
Demzufolge funktioniert natürlich auch:

Code: Alles auswählen

dummy = wx.EmptyBitmap(10, 10)
dc=wx.MemoryDC(dummy)
dc.GetFullTextExtend("BlaBla", font)

Ok, ist zwar immer noch 'ne Notlösung, aber fürs erste... :-)

Früher oder später werde ich wohl nicht daran herumkommen, mir für alle benötigten Fonts eine statische Liste mit den jeweiligen GetFullTextExtend-Rückgaben zu erstellen. Ich wüsste nach wie vor nicht, wie ich ohne Erstellung eines DC an diese Angaben komme.

Gruß
mutetella