ListCtrl のカラムの文字位置について – プログラミング – Home

ListCtrl のカラムの文字位置に...
 
通知
すべてクリア

[解決済] ListCtrl のカラムの文字位置について


タマ吉
 タマ吉
(@タマ吉)
ゲスト
結合: 22年前
投稿: 4
Topic starter  

みなさん、こんばんは。

前回の質問の時には、本当にありがとうございました。m(_)m

ところで、またまたわからない事がありましたので、書き込みさせ
ていただきます。

ListCtrl(ListView)のカラムについてですが、カラムの文字列を
センタリングさせたいのですが、どうしても、左端のカラムだけセン
タリング(右寄せもですが)する事ができません。
ネットでしらべてら、「左端のカラムの文字列は移動できない」と書
かれていたページを見たのですが、これって本当なんですか?
もし、なにか良い方法があったら教えていただきたいのですが。

宜しくお願い致します。


引用未解決
トピックタグ
Shimura
 Shimura
(@Shimura)
ゲスト
結合: 22年前
投稿: 36
 

>これって本当なんですか?
できなきゃ本当でしょう。^^;

以下、MSDN より引用。

If a column is added to a list-view control with index 0
(the leftmost column) and with LVCFMT_RIGHT or LVCFMT_CENTER specified,
the text is not right-aligned or centered.
The text in the index 0 column is left-aligned.
Therefore if you keep inserting columns with index 0,
the text in all columns are left-aligned.
If you want the first column to be right-aligned or centered
you can make a dummy column, then insert one or more columns with
index 1 or higher and specify the alignment you require.
Finally delete the dummy column.

・・・でもって、上の意訳。(あくまで意訳。ちと自信なし。)

インデックス 0 のカラム(最も左端のカラム)は LVCFMT_RIGHT
または LVCFMT_CENTER を指定してもそのテキストはセンターにも
右端にもよせることはできません。なもんで、どうしても最初のカラムを
中央もしくは右端にしたいなら、最初のカラム(インデックス 0 )を
ダミーにして、インデックス 1 から順に必要とする位置にテキストを
並べましょう。んでもって、最終的にダミーのカラムを削除すれば
よろしい。

・・・つうことらしいです。


返信引用
kazuma
 kazuma
(@kazuma)
ゲスト
結合: 24年前
投稿: 217
 

SetColumn でいけるみたい。
と思ったら、選択したアイテムのテキストが左によってしまいます。

ただし、
SetExtendedStyle(LVS_EX_FULLROWSELECT) しておけば選択されても大丈夫なようです。

環境:
Windows 2000 SP3, IE 6.0 SP1, VC++ 6.0 SP5, MFC 使用


返信引用
ゴン太
 ゴン太
(@ゴン太)
ゲスト
結合: 24年前
投稿: 18
 

Shimuraさん、kazumaさん、ご回答ありがとうございます。

Shimuraさんから教えていただいた方法で実現できました。

今回も、本当にありがとうごいました。
また、何かお聞きする事があると思いますが、その時は
宜しくお願い致します。


返信引用
ゴン太
 ゴン太
(@ゴン太)
ゲスト
結合: 24年前
投稿: 18
 

すみません、解決をチェックするのをわすれてました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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