vc++ 6.0です。
リストビューで複数行表示しています。
行を選択し色を変える(反転表示でも良い)方法はないのでしょうか。
カーソルでクリックしたときと同じ表示にしたいのでが。
SetPos(行)のような関数はないでしょうか。
宜しくお願いします。
> リストビューで複数行表示しています。
>
??
複数行表示って、レポートビューのことですか?
> 行を選択し色を変える(反転表示でも良い)方法はないのでしょうか。
>
「任意のアイテムをプログラムから選択状態にしたい」
という解釈でよろしいでしょうか?
CListCtrl::SetItemState()を調べてください。
LVIS_SELECTEDを指定すればよいはずです。
ご返事ありがとうございます。
>「任意のアイテムをプログラムから選択状態にしたい」
>という解釈でよろしいでしょうか?
>CListCtrl::SetItemState()を調べてください。
>LVIS_SELECTEDを指定すればよいはずです
やりたいことはそのとうりです。
指摘していただいたとうり試してみましたが上手くいきませんでした。
以下の方法でためしましたが、何か間違いがあるのでしょうか。
①5行の表示は
LV_ITEM para;
para.mask = LVIF_TEXT| LVIF_STATE
para.state = 0;
para.stateMask = 0;
DeleteAllItem();
para.pszText = テキスト
para.iSubItem = 0;
item = InsertItem(&para)
繰り返し
②3行目を選択状態にしたいとき。
para.mask = LVIS_SELECTED;
SetItemState(2,&para)
としました。
でも3行目が選択状態になりませんでした。
としています。
SetItemState(アイテムインデックス, LVIS_SELECTED, LVIS_SELECTED);
これでどうですか?
>②3行目を選択状態にしたいとき。
>
> para.mask = LVIS_SELECTED;
>
> SetItemState(2,&para)
para.mask = LVIF_STATE;
para.stateMask = LVIS_SELECTED;
para.state = LVIS_SELECTED;
SetItemState(2,&para)
これで良いのでは?
もちろん、sugarさんの回答でも問題ないかと・・
sugarさん、 不良PGさん
ありがとうございました。
選択でき、クリックしたときと同様になりました。