ListBox文字列の表示 – プログラミング – Home

通知
すべてクリア

[解決済] ListBox文字列の表示


GG
 GG
(@GG)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

お世話になっています.GGです。

ListBoxに文字列を表示していますが、
例、
3行と3列の場合
1 ID17-45     17-45
2 小江川 ID17-22 17-22
3 御正新田 ID17-17 17-17
といことですが、以下のようにやっています、
j=1,2,3;
Name: ID17-45, 小江川 ID17-22, 御正新田 ID17-17
Year: 17
ID : 17-45, 17-22, 17-17

cstr.Format(_T(%-4d%-20s%-2s-%-4s), j, Name, Year, ID );

結果は列と列が揃えないこと。
1 ID17-45   17-45
2 小江川 ID17-22 17-22
3 御正新田 ID17-17  17-17

どうしたらいいでしょうか。
よろしくお願いします。

環境:.Net(2002) MFC使用、Win2000


引用未解決
トピックタグ
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

プロポーショナルフォントを使っているのであれば(おそらくデフォルトはMSPゴシック)
等幅フォントにしてみてはどうでしょうか?

もしくは、リストボックスコントロールではなく、複数列表示できるリストビューコン
トロールを使うとか。
(CListCtrlでWeb検索すればサンプルはわんさか見つかります。)


返信引用
GG
 GG
(@GG)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

Blueさん、ご回答ありがとう。
いつもお世話になっています。

確かに、”MS Pゴシック”フォントを使っています、
”MS ゴシック”へ変更して、正常になりました。

ありがとうございました。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2660
 

正常と言うよりも「MS Pゴシック」なら最初のようになるのが正常ですよ。
「MS ゴシック」にしたらうまくそろいましたと言うのが正解かなぁ。

ある程度横幅に余裕があるのであれば、TABを使って調整する手もあるかと思います。
これだとプロポーショナルフォントでもある程度は揃えられます。

ただ、そういう表示がしたいのであれば、CListCtrlを使った方が良いかなと言う気も
しますね。レポート形式で表示して一行選択を設定すれば同じような外観になりますし。


返信引用
GG
 GG
(@GG)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

PATIOさん、ご回答ありがとう。

>正常と言うよりも「MS Pゴシック」なら最初のようになるのが正常ですよ。
>「MS ゴシック」にしたらうまくそろいましたと言うのが正解かなぁ。

「MS Pゴシック」がそろえない。
「MS ゴシック」がそろえます。
理由がわかりません。

>ある程度横幅に余裕があるのであれば、TABを使って調整する手もあるかと思います。
>これだとプロポーショナルフォントでもある程度は揃えられます。
横幅に余裕がない。

>ただ、そういう表示がしたいのであれば、CListCtrlを使った方が良いかなと言う気も
>しますね。レポート形式で表示して一行選択を設定すれば同じような外観になりますし。

>(CListCtrlでWeb検索すればサンプルはわんさか見つかります。)
そうですね、これからやってみます。

どうもありがとうございました。


返信引用
ぬふや
 ぬふや
(@ぬふや)
ゲスト
結合: 18年前
投稿: 34
 

>「MS Pゴシック」がそろえない。
>「MS ゴシック」がそろえます。
意味がわからない…orz
>理由がわかりません。
どっち?

■何故「MS Pゴシック」では駄目なのか。
「MS Pゴシック」のPは確かプロポーショナルフォントかなんかの略で、
意味としては可変幅。
一文字あたりの横幅を一定にしないことで「i」と「w」などを自然に表示するのが
目的だった筈です。
で、「MS ゴシック」は等間隔。

一文字あたりの幅が違えば文字数で位置あわせが出来ないのも当然です。

■「にしたらうまくそろいましたと言うのが正解かなぁ。」に違和感がある。
「MS Pゴシック」は文字数で横幅を合わせようとする事自体が間違いで、これを
「異常だった」と呼ぶのは正しくない。


返信引用
Kerry
 Kerry
(@Kerry)
ゲスト
結合: 20年前
投稿: 192
 

> > ある程度横幅に余裕があるのであれば、TABを使って調整する手もあるかと
> > 思います。
> > これだとプロポーショナルフォントでもある程度は揃えられます。
> 横幅に余裕がない。

タブ幅は列ごとに設定できるでしょ。CListBox::SetTabStopsを使えばok。


返信引用
GG
 GG
(@GG)
ゲスト
結合: 18年前
投稿: 185
Topic starter  

ぬふやさん、Kerryさん、

丁寧な解説ありがとう。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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