2013-02-01 71 views
0

我們有一個最終用戶應用程序,它允許您將多行文本寫入文本框,並將此信息保留到文本文件中。在下一次會話中,從文件中檢索信息以顯示文本。問題是有時在下一個會話文本框的邊界切割文本,所以用戶不得不手動調整文本框的大小。我想以編程方式確定文本框是否需要調整大小。如何測量屏幕上繪製的文本行之間的空間?

GetTextExtentPoint32()似乎很適合基於選擇到設備上下文中的當前字體來測量該行的實際繪製寬度。但是現在我正在解決在垂直方向調整文本框邊界的需要。 GetTextExtentPoint32()確實給了我看起來正確的高度,但是我得到的總高度有點太小了。我相信我需要測量每條線之間的距離,但我不太確定?

更新:它看起來像我正在尋找TEXTMETRIC.tmExternalLeading和TEXTMETRIC.tmInternalLeading。有趣的是一些字體和大小,計算是現貨,我可以完美地適應我的文本。但對於一些字體和大小,計算有點太小,在這種情況下,它看起來是領先的太小或0?

+2

搜索爲最終目標的值:計算文本的高度在文本框。 – 2013-02-01 18:32:55

回答

0

只要我還記得你可以使用GetTextMetrics功能(Metrics.tmAscent + Metrics.tmDescent)應該是你要找的

+0

GetTextExtentPoint32()返回的高度看起來等同於Metrics.tmAscent + Metrics.tmDescent。問題是我需要知道文本行之間的空間的度量。所以我計算的累積高度是正確的,只有當我的文本行間有0空格時。看起來領導會告訴我,但Metrics.ExternalLeading = 0,內部領導太小。 – JosephA

相關問題