文字列がエディットボックス領域内かを求めるには?

[戻る]
いなば 2002/10/01(火) 23:06:01
いつも参考にしております。
エディットボックスにファイルの絶対パスを表示し該当の
文字列がエディットボックスの領域より長ければ絶対パスの
テキストをツールチップで表示しようと思っています。
現在は strlen で絶対パスが30バイト以上なら・・・と
しているのですが、文字列がエディットボックスに収まらな
ければ・・・とかいう判定ってできないのでしょうか?
もしくは文字列の物理的な長さがわかればエディットボックス
の領域(CRectとか)と比較できると思うのですが。
(CRectでとったサイズの単位と同じかどうかわかりませんが)
CStringやCEditのクラスメンバを見てみましたがそれらしい
ものが見当たりません。
よい方法をご存知でしたらお教えください。

環境は
Win98
VC++6.0 
MFC 使用 
です。

dairygoods 2002/10/02(水) 09:26:53
こんな方法はどうでしょうか?

その1)CEdit::PosFromChar()で、一番後ろの文字の座標を求め、
 エディットボックスの表示域をはみ出ているかどうか調べる。

その2)CDC::GetTextExtent()で、文字列の表示サイズを求めて、
 エディットボックスの表示サイズより大きいかどうか調べる。

いなば 2002/10/08(火) 00:55:49
[[解決]]
dairygoodsさんありがとうございます。
返事おそくなり申し訳ないです。
風邪でダウンしてました。早速ためしてみます。
ありがとうございました。

古いスレッドには追加発言できません。