• 締切済み

ListViewでサブアイテムが表示されない

VC++2008にて、プロジェクト形式がWindowsエクスプローラの MFCアプリケーションにてプログラムを作成しています。 ListViewにて、InsertColumn、InsertItem、SetItemTextを 行い、カラムと項目のデータ設定をしているのですが、 ListViewを詳細表示にすると、設定したサブアイテムが 表示されない場合があります。 InsertItemで設定した文字列は、設定した分だけ、 左端にキチンと表示されているのですが、 それ以降のサブアイテムについては、表示されている行もあれば 表示されていない行もあります。 1行に複数のサブアイテムを設定しているのですが、 表示されている場合は、サブアイテム全てが表示されており、 表示されていない場合は、サブアイテム全てが表示されていません。 デバッグで追う限り、データ設定自体は問題なく、 表示される行と、されない行について、 差異を探してみましたが、別段、違ったことはしていません。 ListViewについては、PreCreateWindowにて cs.style |= TVS_SHOWSELALWAYS; cs.style |= LVS_SINGLESEL; cs.style &= ~LVS_TYPEMASK; 上記、設定を行っています。 この他に、何か設定が足りなくて、表示されていないのでしょうか?

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

こういった場合 現象の再現できる最小限のコードと その手順を明示したほうがいいでしょう また現状の表示画像などを投稿してみるのもひとつの方法ですよ

lhouse
質問者

お礼

再現できる最小限コードを作成していったところ、自己解決しました。 アプリ終了時に、アイコン/一覧/詳細のどれを表示させていたかを iniファイルに書き込み、次に立ち上げた時に、 その情報から、初期の表示タイプを設定していたのですが、 値をDWORDではなくintで、設定・読み込みしていたことが 問題でした。 新規にプロジェクトを作成して、バグを洗い出すのも 常套手段ということを、焦り過ぎて忘れていました。 アドバイスの結果、バグ改修に至りました。 ありがとうございました。

関連するQ&A