電子書籍の厳選無料作品が豊富!

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

A 回答 (3件)

ANo2 のリンク先は VisualStudio がインストールされていないとアクセスできないようでした。

すみません。

こちらを参照してください。
http://msdn.microsoft.com/en-us/library/bb761196 …

結局、SendMessage の第3パラメータでアイテムのインデックスを指定しなければならない、ということのようです。
    • good
    • 0

LVM_SETITEM じゃなく、LVM_SETITEMSTATE を使用すればよいと思います。



ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.ja/shellcc/platform/commctls/listview/messages/lvm_setitemstate.htm
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

Dim lv As LVITEM
With lv
.iItem=1
.mask=LVIF_STATE
.state=LVIS_SELECTED
End With
SendMessage(hList,LVM_SETITEMSTATE,0,VarPtr(lv))

とやってみましたが、出来ませんでした。

それと、貼って頂いたアドレスですが、閲覧することが出来ませんでした。

引き続き、ご回答の方を募集させていただきます。
よろしくお願いします。

お礼日時:2010/03/22 11:15

 こんばんは。



.stateMask = LVIS_SELECTED | LVIS_FOCUSED
.state = LVIS_SELECTED | LVIS_FOCUSED

 で出来ませんでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

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

お礼日時:2010/03/22 11:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!