Ich möchte eine CButton dynamisch die Breite des Textes darin ändern. Gibt es entweder eine integrierte Möglichkeit, dies in MFC zu tun, oder eine Möglichkeit, die Pixelbreite eines bestimmten Textes zu berechnen (so dass ich CWnd::SetWindowPos
verwenden kann)?Get text width in MFC
Antwort
Sie können CDC::GetTextExtent verwenden, um die Breite von Text in einer bestimmten Schriftart zu berechnen. Verwenden Sie CWnd::GetDC, um den Gerätekontext von dem Steuerelement abzurufen, das den Text anzeigt.
Es ist langweilig. Sie müssen CWnd::GetFont()
auf der Schaltfläche verwenden, um die Schriftart zu erhalten, die es verwendet, und dann den Standard GetTextText
auf einem CDC
Objekt verwenden, wo Sie diese Schriftart ausgewählt haben. Es sieht so etwas wie
CClientDC dc(&button);
CFont * pOldFont = dc.SelectObject(button.GetFont());
... dc.GetTextExtent...
dc.SelectObject(pOldFont);
Neben @ demoncodemonkey Antwort, können Sie CDC::DrawText mit der DT_CALCRECT
Flagge nennen. Auf diese Weise wird der Text nicht gezeichnet, aber der CRect, den Sie an die Funktion übergeben, hat die Breite und Höhe des zu zeichnenden Textes.
Dies ist besonders nützlich, wenn Sie Text mit Zeilenumbrüchen zeichnen möchten (mit dem Flag DT_WORDBREAK
). Sie können dies nicht mit CDC::GetTextExtent
tun.
CClientDC hdc(this);
GetRect.SetRect(0,0,iLabelWidth,0);
//
//To get Height of Lable in advance
//
hdc.DrawText(
TempData,
TempData.GetLength(),
GetRect,
DT_CALCRECT | DT_MODIFYSTRING | DT_WORDBREAK
);
- 1. Get button focus - MFC
- 2. Text an highchart tooltip anpassen max width
- 3. Text aus der Überlappungstabelle verhindern td width
- 4. Kopieren von Text in die Zwischenablage in MFC
- 5. Get Suchleiste Text in Swift
- 6. Get angezeigt Text von TextBlock-
- 7. @media min-width & max-width
- 8. Max-Width vs. Min-Width
- 9. Get text separetly
- 10. wie binäre Daten zu Text in C++/MFC zu kodieren?
- 11. Wie Rechtsklick Ereignishandler für statischen Text in MFC-Dialog hinzufügen?
- 12. Get Link von Text
- 13. Get-Text aus einem RTF-Text
- 14. Get XmlElement inneren Text und Attribute
- 15. min-width und max-width mit jQuery
- 16. css min-width und max-width?
- 17. JavaScript - Get Text in div von Klasse
- 18. Get Wert von Text in Label Javascript
- 19. Get ausgewählten Text in ContentEditable DIV?
- 20. Get Text in Textansicht durch Koordinaten
- 21. Get LinkButton Text mit Javascript
- 22. C# System.Windows.Automation get element text
- 23. Wiederverwendbarer Hintergrundthread in MFC
- 24. Spaltenauswahl in ListView (MFC)
- 25. MFC Messfunktion in Millisekunden
- 26. Preg_match: Get Wert zwischen Text
- 27. Warum funktionieren nicht min-width und max-width wie erwartet?
- 28. jstree: constraint width
- 29. Android- Get Text aus PDF
- 30. Get Text für XML-Knoten
Gibt es einen Leistungsunterschied zwischen 'GetTextExtent' und' DrawText'? – Richard