加上WS_HSCROLL和LBS_DISABLENOSCROLL属性

解决方案 »

  1.   

    SendMessage(hListBox, LB_SETHORIZONTALEXTENT, [width], 0);
      

  2.   

    我的代码:
    wordListBox->Create(WS_CHILD|WS_VISIBLE|LBS_STANDARD|WS_HSCROLL|WS_VSCROLL|LBS_DISABLENOSCROLL, CRect(50,120,350,550), this, ID_wordList);当字符串长度超长时,滚动条并不 横向滚动
    为什么?
      

  3.   

    可看作listbox一个bug,创建时不行,只有通过程序设置。
      

  4.   

    yu_hl(卖火柴的小男孩) :
    你的代码没起作用啊
    SendMessage(hListBox, LB_SETHORIZONTALEXTENT, [width], 0);
      

  5.   

    在什么时候引用这句?
    SendMessage(hListBox, LB_SETHORIZONTALEXTENT, [width], 0);
      

  6.   

    CMyDlg::OnInitDialog(){
       ....
       SendMessage(hListBox, LB_SETHORIZONTALEXTENT, 2000, 0);
       return TRUE;
    }
      

  7.   

    CMyDlg::OnInitDialog(){
       ....
       ::SendMessage(hListBox, LB_SETHORIZONTALEXTENT, 2000, 0);
       return TRUE;
    }
      

  8.   

    我的listbox是在窗体中动态创建的,
    什么时候引用呢?
    是在添加字符串之前么?
      

  9.   

    20太小了,可能还不如初始宽度大。
    可用GetTextExtentPoint32来动态判断所插入的字符串最长长度来设置。
      

  10.   

    这段代码有什么问题? 不能显示出水平滚动条wordListBox = new CListBox;
    wordListBox->Create(WS_CHILD|WS_VISIBLE|LBS_STANDARD|WS_HSCROLL|WS_VSCROLL|ES_AUTOHSCROLL|LBS_HASSTRINGS , CRect(50,120,350,550), this, ID_wordList);
    ::SendMessage(HWND(wordListBox), LB_SETHORIZONTALEXTENT,30, 0);
    for(int ii = 0;ii<100;ii++)
    wordListBox->AddString("ssssssssaaassssssssssssssssssbbbsssssssscccsssssdddsssssseeess");