0

複数行のテキストをテキスト ボックスに書き込むことができるエンド ユーザー アプリケーションがあり、この情報をテキスト ファイルに保存します。次のセッションで、その情報がファイルから取得され、テキストが表示されます。問題は、次のセッションでテキスト ボックスの境界がテキストを切り取っているため、ユーザーが手動でテキスト ボックスのサイズを変更する必要がある場合があります。テキスト ボックスのサイズを変更する必要があるかどうかをプログラムで判断したいと思います。

GetTextExtentPoint32() は、デバイス コンテキストに選択されている現在のフォントに基づいて、線の実際の描画幅を測定するのにうまく機能するようです。ただし、テキストボックスの境界を垂直方向にサイズ変更する必要性に取り組んでいます。GetTextExtentPoint32() は高さを与えてくれますが、これは正しいようですが、取得した高さの合計は少し小さすぎます。各行の間のスペースを測定する必要があると思いますが、よくわかりませんか?

更新: TEXTMETRIC.tmExternalLeading と TEXTMETRIC.tmInternalLeading を探しているようです。興味深いのは、一部のフォントとサイズでは計算が適切で、テキストを完全に合わせることができることです。しかし、一部のフォントとサイズでは、計算が少し小さすぎます。

4

1 に答える 1

0

GetTextMetrics関数を使用できることを覚えている限り、(Metrics.tmAscent + Metrics.tmDescent)は探している値である必要があります

于 2013-02-01T21:44:07.923 に答える