CListViewから派生したクラスのOnInitialUpdate()に以下の
ソースを追加しました。
CListCtrl& myLV = GetListCtrl();
LVCOLUMN myCLM;
myCLM.mask = LVCF_TEXT | LVCF_WIDTH;
myCLM.pszText = 氏名;
myCLM.cx = 300;
myLV.InsertColumn( 0, &myCLM );
myCLM.pszText = 住所;
myCLM.cx = 600;
myLV.InsertColumn( 1, &myCLM );
しかし、まったく表示されません。なぜでしょうか?
ダイアログに貼り付けたリストビューのようなリストビューを
作りたいのですが、どうすればいいですか?
開発環境はVC6/Win2000です。
よろしくお願いいたします。
リストビューのウィンドウスタイルはレポートビューになっていますか?
PreCreateWindow などで、スタイルに LVS_REPORT を追加してみてください。
ヘッダーの設定は行っていますか?
以下のようにしたら、ヘッダ(列のタイトルが表示されている部分)
が表示されました。
しかし、SetItemTextを使っても明細部が表示されません。
何がいけないのでしょうか?
CListCtrl& myLV = GetListCtrl();
myLV.ModifyStyle(NULL,LVS_REPORT ); // 追加
LVCOLUMN myCLM;
myCLM.mask = LVCF_TEXT | LVCF_WIDTH;
myCLM.pszText = 氏名;
myCLM.mask = LVCF_TEXT | LVCF_WIDTH;
myCLM.cx = 100;
myLV.InsertColumn( 0, &myCLM );
myCLM.pszText = 住所;
myCLM.cx = 300;
myLV.InsertColumn( 1, &myCLM );
myLV.SetItemText(1,1,aaa); // 追加
myLV.SetItemText(1,2,bbb); // 追加
また、リストビューにリストコントロールを設置する
オーソドックスなやり方が載っているHPなどはないですか?
よろしくお願いいたします。
InsertItemでアイテムを挿入しましょう
というわけで以下を書き換え
>myLV.SetItemText(1,1,aaa); // 追加
>myLV.SetItemText(1,2,bbb); // 追加
↓
int nItem = myLV.InsertItem(myLV.GetCount(),")
myLV.SetItemText(nItem,0,aaa);
myLV.SetItemText(nItem,1,bbb);
ついでのお節介ですが。
せっかくMFCなのですから、以下の文をこんな感じで書いた方が見やすいかと思いますよ。
>LVCOLUMN myCLM;
>myCLM.mask = LVCF_TEXT | LVCF_WIDTH;
>myCLM.pszText = 氏名;
>myCLM.mask = LVCF_TEXT | LVCF_WIDTH;
>myCLM.cx = 100;
>myLV.InsertColumn( 0, &myCLM );
>myCLM.pszText = 住所;
>myCLM.cx = 300;
>myLV.InsertColumn( 1, &myCLM );
↓
myLV.InsertColumn(0, 氏名, LVCFMT_LEFT, 100, -1);
myLV.InsertColumn(1, 住所, LVCFMT_LEFT, 300, -1);
では、では。
教えていただいた通りにしたらできました。
親切に教えていただいて本当にありがとうございました。