リスト ビューで特定の項目を選択してフォーカスするプログラムを作成しようとしています。
ListView_SetSelectionMark を呼び出しても (または LVM_SETSELECTIONMARK を送信しても)、リスト ビュー項目にフォーカスを設定できないのはなぜですか? ListView_SetSelectionMark を呼び出した後、フォーカスは新しい場所に移動するのではなく、元の場所に残ります。矢印キーを押すと、指定した項目ではなく、以前にフォーカスされていた項目から移動します。
アイテムを選択してフォーカスするコードのスニペットを次に示します。
ListView_SetItemState(this->m_hwndChild, index, LVNI_SELECTED, LVNI_SELECTED);
ListView_SetSelectionMark(this->m_hwndChild, index);
ListView_EnsureVisible(this->m_hwndChild, index, false);
SetFocus(this->m_hwndChild);
ここに完全な要点があります。Ctrl-R を押すたびに、リスト ビューのランダムな項目が選択されます。