CComboBox m_CBXSex; m_CBXSex.GetItemData(2)取不到值??? //创建下拉列表
m_CBXSex.Create(WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST,CRect(rcClient.Width()/2-125,20,rcClient.Width()/2-70,40),this,IDC_CBXSEX); m_CBXSex.SetFont(&font);

m_CBXSex.SetItemHeight(0,20); m_CBXSex.InsertString(0,"女");
m_CBXSex.SetItemData(0,0);
m_CBXSex.InsertString(1,"男");
m_CBXSex.SetItemData(1,1);
m_CBXSex.InsertString(2,"不限制");
m_CBXSex.SetItemData(2,2);
m_CBXSex.SetCurSel(2);
取值m_CBXSex.GetItemData(2)怎么取不到值.

解决方案 »

  1.   

    通过GetLastError()看看是什么问题
      

  2.   

    //应该可以取到值的。
    DWORD dwRtn = m_CBXSex.GetItemData(2); //得到nRtn == 2;
      

  3.   

    UpdateData(TRUE); 为什么要加这个才行?m_CBXSex.SetItemData(0,0);并没有把值赋值进去?还有一个问题.同样的CComboBox 怎么在ON_CBN_SELCHANGE的时候,选择最后一个选项的时候好像它认为没有改变值.实事上已经从第一选项选择到最后一个选项阿.
      

  4.   

    //如果取当前控件选中的值的话,
    int nIndex = m_CBXSex.GetCurSel();
    DWORD dwRtn = m_CBXSex.GetItemData(nIndex);//同样的CComboBox 怎么在ON_CBN_SELCHANGE的时候,选择最后一个选项的时候好像它认为没有改变值. 
    //ON_CBN_SELCHANGE是在选择这个动作时产生的,此时选中项并没有改变
      

  5.   

    哈哈,是自己判断搞错了. if(m_nPage<m_nPageMax+1)
    {
    .....原来同
    if(m_nPage<m_nPageMax)
    {肯定不操作了.