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

通知
すべてクリア

[解決済] ListViewの表示文字


しの
 しの
(@しの)
ゲスト
結合: 20年前
投稿: 12
Topic starter  

こんにちは。
VC++6.0にてListViewを使用したアプリを作成しています。
Windowx XP以前のPCでは該当列に表示させたい文字が全て表示されているのですが、
同じアプリをWindows Vistaで動作させると表示させたい文字の一部しか表示され
ません。

以下、ソースの一部
      :
LV_COLUMN lv_col;

lv_col.cx = 100;
lv_col.pszText = ABCDEFFG;
      :

この時、Windows XPでは、「ABCDEFFG」と表示されるのですが、
Windows Vistaでは、「ABCDEF」と一部しか表示されません。

これは、何故なのでしょうか?

また、対応するには、「lv_col.cx = 100;」の値を大きくすればいいと思う
のですがそれでWindows Vista向けの対応として問題ないのでしょうか?

どなたかご存知の方がいらっしゃいましたらご伝授ねがいます。

よろしくお願いします。


引用未解決
トピックタグ
ぬ
 ぬ
(@ぬ)
ゲスト
結合: 18年前
投稿: 39
 

原因はおそらくフォントが違うからです。
よってフォント設定の異なる環境でも再現すると考えられます。

「文字列に幅を合わせる」場合は、フォント情報を取得するか、自動調節を使
いましょう。
自分の環境のみの定数で作るべきではありません。

MFCかSDKか書いてないので、両方書きますが、質問する際は環境を書いてく
ださい。

MFC:CListCtrl::SetColumnWidthの第二引数で
LVSCW_AUTOSIZE_USE_HEADER等を指定する。
SDK:LVM_SETCOLUMNWIDTHメッセージ又はListView_SetColumnWidthで
LVSCW_AUTOSIZE_USE_HEADER等を指定する。

多分こういう話では?


返信引用
しの
 しの
(@しの)
ゲスト
結合: 20年前
投稿: 12
Topic starter  

ぬさん、ありがとうございます。

自動調節を使用するようにしました。
本当にありがとうございます。

環境はSDKを使用しています。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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