• 締切済み

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

みんなの回答

回答No.3

ANo2 のリンク先は VisualStudio がインストールされていないとアクセスできないようでした。すみません。 こちらを参照してください。 http://msdn.microsoft.com/en-us/library/bb761196(VS.85).aspx 結局、SendMessage の第3パラメータでアイテムのインデックスを指定しなければならない、ということのようです。

回答No.2

LVM_SETITEM じゃなく、LVM_SETITEMSTATE を使用すればよいと思います。 ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.ja/shellcc/platform/commctls/listview/messages/lvm_setitemstate.htm

if-so-at
質問者

お礼

ご回答ありがとうございます。 Dim lv As LVITEM With lv .iItem=1 .mask=LVIF_STATE .state=LVIS_SELECTED End With SendMessage(hList,LVM_SETITEMSTATE,0,VarPtr(lv)) とやってみましたが、出来ませんでした。 それと、貼って頂いたアドレスですが、閲覧することが出来ませんでした。 引き続き、ご回答の方を募集させていただきます。 よろしくお願いします。

回答No.1

 こんばんは。 .stateMask = LVIS_SELECTED | LVIS_FOCUSED .state = LVIS_SELECTED | LVIS_FOCUSED  で出来ませんでしょうか。

if-so-at
質問者

お礼

ご回答ありがとうございます。 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演算も試しました) 引き続き、ご回答の方を募集させていただきます。 よろしくお願いします。

関連するQ&A