不可能的呀,InsertString ( -1,... );或AddString(...)

解决方案 »

  1.   

    我通过msdn没有解决问题,知道请指点一下!!!
      

  2.   

    我的方法为:
    char* filename="paytype.txt";
    char buffer[128];
    int i=0;
    FILE* Rpaytype=fopen(filename,"r");
    if(Rpaytype==NULL)
    {
    fclose(Rpaytype);
    return -1 ; 
    } while (fgets(buffer,sizeof(buffer),Rpaytype))
    {
    //m_CmbCtrl.AddString(buffer);
    m_CmbCtrl.InsertString(-1,buffer);  
    i++;
    }
    fclose(Rpaytype);
    return 0;
    错在那里???
      

  3.   

    如果确保while 循环中的buffer有的话,那或许是应该在对话框中插入组合框后没有对组合框的高度进行设置,所以没有显示,尽管你已经加入了内容。
      

  4.   

    我这样设置m_CmbCtrl.SetItemHeight(-1,20); 还是不行,高度应设为多少?
      

  5.   

    加入方法没有错误,但需要设置一下ComboBox的下拉框高度才能有下拉框内容的显示。设置为只读:只需要在ComboBox的属性框中“Styles”页里的Type改为Drop List风格即可。
      

  6.   

    直接在对话框资源编辑器中点击ComboBox控件的下拉按钮部分,鼠标会变成“上下箭头”标志,然后就可以调整下拉框的大小了。
      

  7.   

    谢谢Nilaix
    这样可以显示了,但dialog每显示时combox总会弹出一个列表,我希望不弹出列表(除非我单击箭头标志),只在combox中显示第一个插入的值。这样能实现吗?
      

  8.   

    不太明白你的意思。Dialog显示的时候ComboBox会自动弹出一个列表?显示第一个插入的值:m_CmbCtrl.SetCurSel(0);
      

  9.   

    当然能实现。
    1.可以直接在Combox属性对话框中添加文字内容:在“Data”选项里面直接添加。
      ( 注意:换行要用CTRL+ENTER。)
      也可以通过AddString(...)和InsertString(...)在程序中添加。
    2.自动弹出列表是因为你的“Style”选项中的Type选成了“Simple”,只要改成其他的就可以 了,如果要只读,就必须选成“Drop List”风格。
    3.要显示第一个插入的值,首先要保证你第一个插入的值为第0行。
      Like this: m_ComboBox.InsertString(0,"...");
      and  then: m_ComboBox.SetCurSel(0);