Länge Button Text vs. Button Breite
-
Guten Morgen,
ich möchte prüfen, ob ein Text in einen Button passt (um ihn evtl. zu kürzen und den ganzen Text als Tooltip anzuzeigen). Ich dachte es wäre folgendermaßen möglich:
//m_pctrSwitch Button //rstrName Button-text long lSwitchWidth = m_pctrSwitch->get_Width(); CSize textSize = m_pctrSwitch->GetDC()->GetTextExtent(rstrName); // GetOutputTextExtent ergibt das Gleiche // ...
Jetzt bekomme ich für "lSwitchWidth = 145" und für "textSize.cx = 175". Der Text passt aber locker in den Button hinein.
Was ist hier falsch?
Grüße
Dirk
-
Hast Du Dir für den DC auch den richtigen Font gesetzt der auch im Button verwendet wird?
-
Nein, ich bin davon ausgegangen, dass der DC den ich mir vom Button hole (m_pctrSwitch->GetDC()) über seinen Font "Bescheid weiß". Denkfehler hier?
-
dirkcpp schrieb:
Denkfehler hier?
Ja! Du bekommst einen leeren DC mit den Standard-Objekten.
Es gibt in Windows keine Nachricht: WM_GibmireineninitialisertenDCwieDuesmochtest
-
vielleicht wäre es am besten OnDrawItem() zu überladen. Der DC kennt den Font nicht, wenn er noch nicht gesetzt wurde. Bei OnDrawItem() müßte das DC komplettiert sein
-
Danke, erst einmal! Ich denke, ich komme jetzt weiter.
Gruß
Dirk