EditBox 内の文字列を ”上下中央揃え” にしたいです。

[戻る]
Takeshi 2002/05/31(金) 10:16:54
  お世話になります。


各コントロールへのフォントの設定については、

(1)CFont フォント型OBJ;
(2)フォント型OBJ.CreateFont(フォントの具体的な内容は省略);
(3)各コントロール型OBJへのポインタ ->SetFont(&フォント型OBJ,true);

これで、できる事になりました。

そこで CFont,CEdit 等を調べたのですが、文字列の位置の設定はどうすればいいのでしょう?
エディットボックス内に表示される文字列が ”上寄せ状態 ”になっており
ボックス内の上の壁に接触しています。これを ”上下中央揃え ”にしたいのですが、
何を使えばできるのでしょうか?どのクラスを使えば良いのか教えて下さい。
宜しくお願いします。

(現状)
 −−−−−−−−−
|中の文字列      |
|               |
 −−−−−−−−−

kazuma 2002/05/31(金) 13:00:16
私は次のような方法を使いました。
1.クライアント領域の高さを取得。(GetClientRect)
2.表示される文字列の高さを取得。(GetTextMetricsなど)
3.以上の結果から文字列を表示すべき位置を計算して、CEdit::SetRect。

Takeshi 2002/05/31(金) 14:37:39
  お世話になっております。

つまり、ダイアログエディタ等では設定できないんですねー?
分かりました。kazumaさんのやり方を参考にコードでやってみます。
ありがとうございました。

ワルツ 2002/05/31(金) 18:00:01
ちなみに、SetRectが使用できるのはCEditがマルチラインのときです。

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