引用:
> マウスで1回はクリックしないと[↓]キーでリスト内を操作できません。
> そこで、下記コードの一番下でビュー上の1行目(Index=0)を選択状態(強調表示)
> で表示されるように処理をしたいです。
> Radで「選択を常に表示」にしています。
> SendMessageでどのように指定したらよいですか?。
> item.mask=LVIF_STAYE
> item.state=LVIS_SELECTED
> item.iItem=0
> SendMessage(hList,LVM_SETITEM,0,VarPtr(item))
> でうまく行きません
リストビューの選択関数です。これでやってみてください。
なお、「マウスで1回は~」はフォーカスが当たってないからかもなので、
SetForcus()でリストビューにフォーカスを当ててみてください。
コード:
'指定されたアイテム(nIndex)を選択状態にする。
'hWnd=ListViewコントロールのハンドル
Function ListView_SetSelecedIndex( hWnd As Long, nIndex As Long ) As Long
Dim stLvItem As LV_ITEM
stLvItem.iItem = nIndex
stLvItem.iSubItem = 0
stLvItem.mask = LVIF_STATE
stLvItem.state = LVIS_SELECTED
stLvItem.stateMask = LVIS_SELECTED
ListView_SetSelecedIndex = SendMessage( hWnd, LVM_SETITEM, 0, VarPtr(stLvItem) )
End Function
手前味噌ですが、サンプルコードつきヘルプを、当方のサイトの「ダウンロード>AB淡幻ライブラリ」で公開してます。
その中の「WSLib6_ListViewStructure.sbp」に、
リストビュー関連の補助関数をいろいろ定義してますので、
興味ありましたら参照ください。