- 締切済み
ActiveBasic ListView 選択を移動させたい
SendMessage関数を使って、ListViewの選択されているアイテムの場所を移動させたいのですが、 思うように動きません。 Dim lv As LVITEM With lv .iItem=PlayListNum[RandomFlag] .mask=LVIF_STATE .state=LVIS_SELECTED End With SendMessage(hList,LVM_SETITEM,0,VarPtr(lv)) ※hListには、ListViewのハンドルが格納されてあります。 ご存知の方、いらっしゃいましたら、やり方の方をご教授下さい。 Win XP AB 4.23.00
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- tsukasa-12r
- ベストアンサー率65% (358/549)
ANo2 のリンク先は VisualStudio がインストールされていないとアクセスできないようでした。すみません。 こちらを参照してください。 http://msdn.microsoft.com/en-us/library/bb761196(VS.85).aspx 結局、SendMessage の第3パラメータでアイテムのインデックスを指定しなければならない、ということのようです。
- tsukasa-12r
- ベストアンサー率65% (358/549)
LVM_SETITEM じゃなく、LVM_SETITEMSTATE を使用すればよいと思います。 ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.ja/shellcc/platform/commctls/listview/messages/lvm_setitemstate.htm
- machongola
- ベストアンサー率60% (434/720)
こんばんは。 .stateMask = LVIS_SELECTED | LVIS_FOCUSED .state = LVIS_SELECTED | LVIS_FOCUSED で出来ませんでしょうか。
お礼
ご回答ありがとうございます。 Dim lv As LVITEM With lv .iItem=1 .mask=LVIS_SELECTED and LVIS_FOCUSED .state=LVIS_SELECTED and LVIS_FOCUSED End With SendMessage(hList,LVM_SETITEM,0,VarPtr(lv)) とやってみましたが、出来ませんでした。 (or演算も試しました) 引き続き、ご回答の方を募集させていただきます。 よろしくお願いします。
お礼
ご回答ありがとうございます。 Dim lv As LVITEM With lv .iItem=1 .mask=LVIF_STATE .state=LVIS_SELECTED End With SendMessage(hList,LVM_SETITEMSTATE,0,VarPtr(lv)) とやってみましたが、出来ませんでした。 それと、貼って頂いたアドレスですが、閲覧することが出来ませんでした。 引き続き、ご回答の方を募集させていただきます。 よろしくお願いします。