ClistCtrlは、ヘッダーのないレポートビューの単一列&単一列に設定されています。CListCtrlの項目を選択して設定する方法は?
私は試しましたSetItemState(0,LVIS_SELECTED,LVIF_STATE)
と
SetSelectionMark(int index)
これらは動作しません。
ClistCtrlは、ヘッダーのないレポートビューの単一列&単一列に設定されています。CListCtrlの項目を選択して設定する方法は?
私は試しましたSetItemState(0,LVIS_SELECTED,LVIF_STATE)
と
SetSelectionMark(int index)
これらは動作しません。
使用SetItemState(0、LVIS_SELECTED、LVIS_SELECTED)のハイライトを消しために強調表示し、 SetItemState(0、〜LVIS_SELECTED、LVIS_SELECTED)します。
また、アイテム状態を更新した後にSetSelectionMarkを呼び出す必要があります。
SetItemState(prev_item, ~LVIS_SELECTED, LVIS_SELECTED);
SetItemState(new_selected_item, LVIS_SELECTED, LVIS_SELECTED);
SetSelectionMark(new_selected_item);
セットだけプロパティ - > Appearance->常に表示選択にTRUE
これはGUIではありませんが、私のために解決しました。プログラムでリストビューコントロールを作成する場合、設定するスタイルは 'LVS_SHOWSELALWAYS'です。 –
私はあなたが作るために、そのnItem
引数として-1
を渡すことができSetItemState
機能の文書化されていない機能があると思います機能はすべてにあります。
だから、あなただけ一つだけを選択したい場合は、私がお勧めすることができます:
SetItemState(-1, 0, LVIS_SELECTED);
SetItemState(index, LVIS_SELECTED, LVIS_SELECTED);
UPDATE:
(http://www.verycomputer.com/417_11fcb075491b88c9_1.htm#p3を見た後)
SetItemState
関数はLVM_SETITEMSTATE
メッセージを送信し、nItem = -1機能はのwParam
引数として文書化されています。
ありがとうございます。[マクロ](https://msdn.microsoft.com/en-us/library/windows/desktop/bb775102(v = vs.85).aspx)にも詳しい情報があります。 –
あなたはOnInitialDialogに設定され、選択した項目を文句を言わない場合は、このコードを使用マスト:
m_pSPSMapList->EnsureVisible(nItem, FALSE);
m_pSPSMapList->SetFocus();
m_pSPSMapList->SetItemState(nItem, LVIS_FOCUSED | LVIS_SELECTED,
LVIS_FOCUSED | LVIS_SELECTED);
return FALSE; // OnInitialDialog necessarily must return false
私はこのようにそれを使用して、それが作品を! – sergiol