CListCtrl::SetItemState  是一个 MFC(Microsoft Foundation Classes)方法,用于设置 CListCtrl 控件中的列表项状态。在这里,您正在尝试设置第二行(索引为 1)为选中和聚焦状态。要正确显示选中状态,请确保您的 CListCtrl 控件具有 LVS_SHOWSELALWAYS 样式。这个样式会确保控件在失去焦点时仍然显示选中项。
要设置 LVS_SHOWSELALWAYS 样式,请在创建 CListCtrl 时,将它添加到控件的样式中。在对话框的 .cpp 文件中,您可以在  DoDataExchange  函数中添加此样式:
- void CYourDialog::DoDataExchange(CDataExchange* pDX)
 
- {
 
-     CDialogEx::DoDataExchange(pDX);
 
-     DDX_Control(pDX, IDC_YOUR_LISTCTRL, m_listCtrl);
 
-     m_listCtrl.ModifyStyle(0, LVS_SHOWSELALWAYS);
 
- }
 
其中  IDC_YOUR_LISTCTRL  是您的 CListCtrl 控件的资源 ID。
如果您已经添加了 LVS_SHOWSELALWAYS 样式,但仍然没有看到选中的行,请尝试调用  CListCtrl::Update  或  CListCtrl::RedrawItems  方法来强制重绘列表项:
- BOOL b1 = mylist4.SetItemState(1, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
 
- mylist4.Update(1);
 
- // 或者
 
- mylist4.RedrawItems(1, 1);
 
最后,请确保在设置选中状态之前,CListCtrl 控件已经包含了至少两行数据。如果没有足够的数据行,设置状态的操作将不起作用。