リストビュー Item選択 – プログラミング – Home

リストビュー Item選択
 
通知
すべてクリア

[解決済] リストビュー Item選択


しんじ
 しんじ
(@しんじ)
ゲスト
結合: 24年前
投稿: 7
Topic starter  

vc++ 6.0です。

リストビューで複数行表示しています。

行を選択し色を変える(反転表示でも良い)方法はないのでしょうか。
カーソルでクリックしたときと同じ表示にしたいのでが。

SetPos(行)のような関数はないでしょうか。

宜しくお願いします。


引用未解決
トピックタグ
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

> リストビューで複数行表示しています。
>
??
複数行表示って、レポートビューのことですか?

> 行を選択し色を変える(反転表示でも良い)方法はないのでしょうか。
>
「任意のアイテムをプログラムから選択状態にしたい」
という解釈でよろしいでしょうか?
CListCtrl::SetItemState()を調べてください。
LVIS_SELECTEDを指定すればよいはずです。


返信引用
しんじ
 しんじ
(@しんじ)
ゲスト
結合: 24年前
投稿: 7
Topic starter  

ご返事ありがとうございます。

>「任意のアイテムをプログラムから選択状態にしたい」
>という解釈でよろしいでしょうか?
>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行目が選択状態になりませんでした。

としています。


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

SetItemState(アイテムインデックス, LVIS_SELECTED, LVIS_SELECTED);

これでどうですか?


返信引用
不良PG
 不良PG
(@不良PG)
ゲスト
結合: 23年前
投稿: 80
 

>②3行目を選択状態にしたいとき。
>
> para.mask = LVIS_SELECTED;
>
>  SetItemState(2,&para)

para.mask = LVIF_STATE;
para.stateMask = LVIS_SELECTED;
para.state = LVIS_SELECTED;

SetItemState(2,&para)

これで良いのでは?

もちろん、sugarさんの回答でも問題ないかと・・


返信引用
しんじ
 しんじ
(@しんじ)
ゲスト
結合: 24年前
投稿: 7
Topic starter  

sugarさん、 不良PGさん
  ありがとうございました。

選択でき、クリックしたときと同様になりました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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