当listbox超出显示范围的时候会出现一条竖滚动条
我怎么样才可以让它滚动到列表的最后?

解决方案 »

  1.   

    我找到一个SetCaretIndex,大概可以实现,我还看到说,用 WM_HSRCROLL也可以实现
    但是我不知道这个应该怎么用(WM_HSRCROLL),那位兄弟指点一下
      

  2.   

    void CDlg18Dlg::OnButton8() 
    {
    m_list2.AddString("1");
    m_list2.AddString("1");
    m_list2.AddString("2");
    m_list2.AddString("1");
    m_list2.AddString("1");
    m_list2.AddString("1");
    m_list2.AddString("1");
    m_list2.AddString("2");
    m_list2.AddString("1");
    m_list2.AddString("1");
    m_list2.AddString("1");
    m_list2.AddString("$");
    m_list2.AddString("$1");
    m_list2.AddString("&1"); int nCount = m_list2.GetCount();
    int nSel = m_list2.GetCurSel();
    m_list2.SetCurSel(nCount -1);
    m_list2.SetCurSel(nSel);}
      

  3.   

    原理:你选中最后一个,滚动条会自动滚动最后
    如果你不想选中任何内容,请SetCurSel(-1);
      

  4.   

    技术上可行
    符合你的要求吗?
    如果不明白
    请给我发短消息
    请附: 帖子的地址
    或根据http://www.vcshare.net上的联系方式与我联系
    ---------------
    欢迎访问我的个人论坛http://www.vcshare.net/bbs
      

  5.   

    用楼上的方法合理一些,如果一定要通过滚动条实现,可以这样:
    HWND hList = ::GetDlgItem(m_hWnd,IDC_LIST);
    for(int i=0;i<20;i++)
    ::SendMessage(hList,LB_ADDSTRING,0,(LPARAM)_T("Item")); SCROLLINFO si;
    si.cbSize = sizeof(SCROLLINFO);
    si.fMask = SIF_POS | SIF_RANGE;
    ::GetScrollInfo(hList,SB_VERT,&si);
    si.fMask = SIF_POS;
    si.nPos = si.nMax;
    ::SetScrollInfo(hList,SB_VERT,&si,TRUE);