使用AddString(str);
str是从GetWindowText()得到的。一般是在输入特殊字符时加入。(enter)
重载PreTranslateMessage(....)函数。一定可以的

解决方案 »

  1.   

    BOOL CComboBoxDlg::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    char str[255];
    if(pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)
    {
    CWnd *pWnd = CWnd::FromHandle(pMsg->hwnd);
    switch(pWnd->GetDlgCtrlID())
    {
    case 1001:
    pWnd->GetWindowText(str,255);
    m_cb1.AddString(str);
    pWnd->SetWindowText(_T(""));
    return TRUE;
    break;
    case IDC_EDIT1:
    m_cb1.SetFocus();
    return TRUE;
    break;
    }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }
      

  2.   

    重载PreTranslateMessage(....)函数
    …………::PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)
    { CString str[55] = ::GetWindowWord(hWnd,1);
               box.AddString(str);
              }
    }
    //按下回车键会自动加入到你的列表中,当然还可以用别的键,具体再看看MSDN了          
      

  3.   

    我试了一下,因为我这个combo box控件是在一个对话框中的,所以我就新建了一个类Cmycombo,基类是Ccombo box,然后我在它的PreTranslateMessage消息中添加了如下代码:
    CString str;
    if (pMsg->message==WM_KEYDOWN&&pMsg->wParam==VK_RETURN)
        { 
           GetWindowText(str);
           AddString(str);
           Updatedata();
           return true;
           
         }
    else
       
    return Ccombo box::PreTranslateMessage(pMsg);
    最后在给我的combo box添加一个控件变量,类型是  CMycombo
    结果对话框运行时能够将我输入的字符加入combobox中
    但是当我再次运行时却没有刚加入的字符
      

  4.   

    在CDialog中重载,不是ComboBox。
      

  5.   

    我修改了一下,在Dialog中重载了PreTranslateMessage函数,但是结果还是那样,当程序重新运行时,刚才加入的字符就没有了。
    请各位高手赐见!