在MFC中SDI中,创建了如下控件,
CListBox m_inforList;
m_inforList.Create(LVS_ALIGNLEFT | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL /*| WS_DISABLED*/,
CRect(430,61,720,380),this,IDD_INFORLIST);
但是这句代码无效:
m_inforList.SetCurSel(m_inforList.GetCount()-1);
我发现在 dialog下 设置 
CListBox 的属性中 Styles--->Selection---->Single就可以生效了
所以想问问在SDI 中创建的CListBox如何定义Single属性,或者说如何可以使选中最后一行的代码生效,
thx。

解决方案 »

  1.   

    1、SetCurSel只对Single Line 有效,多行的要用CListBox::SetSel2、m_inforList.Create(LVS_ALIGNLEFT | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL /*| WS_DISABLED*/|LBS_MULTIPLESEL,
    CRect(430,61,720,380),this,IDD_INFORLIST);
      

  2.   

    CListBox::SetCurSelint SetCurSel( int nSelect );返回值:如果出错,则返回LB_ERR。参数: nSelect 指定选择的字符串的基于零的索引。如果nSelect为-1,列表框设置为无选择。  说明:
    如果需要,选择一个字符串并将其滚动到视图。当新字符串被选择,列表框将前一个选择的字符串去掉高亮显示。
    只对单选列表框使用此成员函数。它不能用来设置或删除多选框中的选择。
      

  3.   

    这个函数只在Single属性时可用
      

  4.   


    m_inforList.SetCurSel(m_inforList.GetCount()-1);
    -->
    m_inforList.SetSel(m_inforList.GetCount() - 1);