2
項目はCListCtrlに追加されています。特定のアイテムがリストに存在する場合、そのアイテムを選択する必要があります。 次のコードを試しましたが、アイテムが選択されていません。mfc listctrlで選択した項目を作成できません。
BOOL CsampleeeDlg::OnInitDialog()
{
m_List.InsertColumn(0, _T("Full Name"), LVCFMT_LEFT, 90);
m_List.InsertColumn(1, _T("Profession"), LVCFMT_LEFT, 90);
m_List.InsertColumn(2, _T("Fav Sport"), LVCFMT_LEFT, 90);
int nIndex = m_List.InsertItem(0, _T("Sandra C. Anschwitz"));
m_List.SetItemText(nIndex, 1, _T("Singer"));
m_List.SetItemText(nIndex, 2, _T("Handball"));
nIndex = m_List.InsertItem(1, _T("Roger A. Miller"));
m_List.SetItemText(nIndex, 1, _T("Footballer"));
m_List.SetItemText(nIndex, 2, _T("Tennis"));
int nCol = 0;
CString m_SearchThisItemText = _T("Sandra C. Anschwitz");
int var=-1;
for (int i = 0; i < m_List.GetItemCount(); i++)
{
CString szText = m_List.GetItemText(i, nCol);
if (szText == m_SearchThisItemText)
{
var=i;
}
}
m_List.SetFocus();
m_List.SetItemState (var, LVIS_SELECTED, LVIS_SELECTED);
m_List.GetSelectionMark();
return TRUE; // return TRUE unless you set the focus to a control
}
ここに不足していることを教えてください。何かヒント? 助けてくれてありがとう
varが-1でない場合は、選択した項目が表示されます。 LVS_SHOWSELALWAYSを使用しましたか?そうでない場合、項目にはフォーカスがある場合にのみ選択されたものとして表示されます。 – xMRi
はいvarは-1ではありません。使用LVS_SHOWSELALWAYSは、このアイテムを選択しませんでした – Nancy
この 'm_List.SetItemState(var、LVIS_SELECTED | LVIS_FOCUSED、LVIS_SELECTED | LVIS_FOCUSED); – kajojeq