在页面中,有一个CComboBox下拉框,显示的数据为相应代码对应的中文内容,当选择后,保存进数据库的要是此中文内容对应的代码值,请问各位大侠如何操作?小弟初学VC,急等!

解决方案 »

  1.   

    1.首先建立一个CComboBox的index与中文内容的映射.
    2.在你的程序中处理ON_CBN_SELENDOK通知消息。
    3.获得选择的Index值,利用CMap的成员函数将中文内容取出。
    4.存入数据库。[email protected]
      

  2.   

    jianghoujun(狂人)
    你有没有相关的例子代码吗?我是初学VC,还望指点:)
      

  3.   

    CComboBox* pComboBox=(CComboBox*)GetDlgItem(IDC_COMBO_OP);
    int nIndex=pComboBox->GetCurSel();
    char tbuf[80];
    int ret=pComboBox->GetLBText(nIndex,tbuf);
    ASSERT(ret!=CB_ERR);
    然后下面用switch
      

  4.   

    我原来做的一个程序中也同 jianghoujun(狂人) 和cwcsdn(nic)的步骤一样,这样做起来非常烦琐,但好象没有选择,只有这样。
      

  5.   

    "显示的数据为相应代码对应的中文内容"
    相应的代码是什么?不管它是什么也有一种方法可以解决:
    把相应的代码存放在一个数组里 YOURTYPE dataArray[100];
    中文内容放在另外一个字符串数组里    char*   sName[100];
    这两组内容是一一对应的。这样一个你所说的代码数据就对应一个数组下标
    然后把Combo Box的属性里的Styles->Sort选项去掉。把中文内容添加到Combo Box里,一定要按顺序
    然后利用Class Wizard 向导给Combo Box添加一个Control 变量  m_ctrlComboBox;int index;
    index=m_ctrlComboBox.GetCurSel();
    if(index!=CB_ERR)
    {
        Save(dataArray,index);//这个是用来保存数据的自己定义的函数
    }index指向与中文内容相对应的数组下标当然如果你所说的代码值只是一个简单的整型什么的数据就比这个简单了
    直接使用ComboBox的SetItemData()和GetItemData()函数就可以了
      

  6.   

    YOURTYPE 是你所用的数据类型
      

  7.   

    谢谢 hyamw(林锋)
    你的回答让我有了一个直观的理解。多谢大家,准备接分吧:)