EditBox 内の文字列を ”上下中央揃え” にしたいです。 – プログラミング – Home

EditBox 内の文字列を ”上下中...
 
通知
すべてクリア

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


Takeshi
 Takeshi
(@Takeshi)
ゲスト
結合: 23年前
投稿: 83
Topic starter  

お世話になります。

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

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

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

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

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


引用解決済
トピックタグ
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

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


返信引用
Takeshi
 Takeshi
(@Takeshi)
ゲスト
結合: 23年前
投稿: 83
Topic starter  

お世話になっております。

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


返信引用
ワルツ
 ワルツ
(@ワルツ)
ゲスト
結合: 23年前
投稿: 21
 

ちなみに、SetRectが使用できるのはCEditがマルチラインのときです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました