我动态创建了一个CCombBox控件,向里面添加了几个字符串,无法显示,为啥?
 代码如下:
CComboBox m_combType;
m_combType.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST|CBS_HASSTRINGS|CBS_SIMPLE,CRect(900,60,975,90),this,642);
        m_combType.AddString("A001");
m_combType.AddString("A002");
m_combType.AddString("A003");
m_combType.AddString("A004");
直接添加控件我是知道,但是动态添加偶就不清楚了,大家帮我看下···

解决方案 »

  1.   

    CComboBox m_combType;
    //这个我定义在CXXXDlg的public中
    CComboBox m_combType; 
    m_combType.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST|CBS_HASSTRINGS|CBS_SIMPLE,CRect(900,60,975,90),this,642); 
            m_combType.AddString("A001"); 
    m_combType.AddString("A002"); 
    m_combType.AddString("A003"); 
    m_combType.AddString("A004"); 
    //这段代码在CXXXDlg的OnInitDialog中
      

  2.   

    应该后面加入 一条
    SetCurSel(0)
      

  3.   


    public:
    CComboBox m_combType; //这句需要定义在头文件中,不然定义在函数体中,函数销毁就没了 

    //下面的动态生成,你可以写在OnitDiag中,也可以写在自定义的函数体中,没有关系
    if(m_combType == NULL)
    {
    m_combType.Create(WS_CHILD|WS_VISIBLE|WS_VSCROLL|CBS_DROPDOWNLIST|CBS_HASSTRINGS|CBS_SIMPLE,CRect(900,60,975,90),this,642); 
    //CRect(900,60,975,90)这个范围比较的大,会导致你创建成功,但是看不到控件(越出窗口范围了),
    //你可以修改下,写成CRect(0,0,100,100);试验下

    if(m_combType != NULL)
    {
    //你下面四句执行了都没有报错,说明你创建成功了
        m_combType.AddString("A001"); 
    m_combType.AddString("A002"); 
    m_combType.AddString("A003"); 
    m_combType.AddString("A004");
    }
    else
    {
    AfxMessageBox("创建失败!");
    }
    }
    else
    {
    AfxMessageBox(“已经创建了”);
    }
    //所以我估计,你是创建成功了,但是没有显示在适当的位置,你没有看到,你可以看下句柄是不是空的. 还有就是你的ID号是不是重复