首先,要说的是,这个程序是WIN32应用程序,不是MFC
我在对话框中放了一个COMBO BOX,然后SENDMESSAGE发送了CB_ADDSTRING添加了列表...成功...
这个COMBO BOX是可编辑的....所以可以不选择下拉框的项...可以自己编辑...我的问题是,我怎么才能知道,用户是选择的列表里面的??还是自己输入的??
我发送CB_GETLBTEXT消息,怎么得不到当前COMBO BOX里面的文本啊???
因为CB_GETLBTEXT消息的WPARAM需要我填一个索引值...我就填了0...
我只想得到当前COMBO BOX编辑框里的文本,这个文本有可能是选择的,也有可能是手输的...

解决方案 »

  1.   

    CComBoBox中的EDIT的ID值是1001,这是个特殊值,你可以用GetDlgItem(1001)->GetWindowText获取
      

  2.   

    首先要得到输入的字符串,然后通过这个字符串利用函数int FindString( int nStartAfter, LPCTSTR lpszString )查找是不是当前COMBO BOX列表中已经存在的,如果是,则返回,不用添加.如果不是,则通过函数int AddString( LPCTSTR lpszString )或者int InsertString( int nIndex, LPCTSTR lpszString )加入,
      

  3.   

    对话框有多个combo box呢??都是1001??那怎么区分?
      

  4.   

    TO wsb_8224() :
    但是我怎么得到输入的字符串呢??是哪个消息?
      

  5.   

    这个简单,在类向导中关联一个COMBO BOX的CString型的控件变量就可以的了.
      

  6.   

    类向导....我不是写MFC程序的说...
      

  7.   

    查找是否下拉框的内容已经解决了!!!比如:
    iRet=SendMessage(GetDlgItem(hDlg,IDC_COMBO1),CB_FINDSTRINGEXACT,-1,(LPARAM)ComboBuf);就可以了.....现在问题就是怎么获取当前combo box的内容到ComboBuf.....
      

  8.   

    ComboBox.GetWindowsText(buf); 搞定
      

  9.   

    哦,不用MFC所,耶,你还玩高科技嘛, 我推荐 陌生人的:你可以用GetDlgItem(1001)->GetWindowText获取
      

  10.   

    用windows API可以作出来的
    GetDlgItem()->GetWindowText();
    这个是可以得到当前输入的了
      

  11.   

    搞定了...
    GetWindowText(GetDlgItem(hDlg,IDC_COMBO1),ComboBuf,MAXLABELTEXT);
    谢谢
      

  12.   

    分已经给完了...如果还有高手的话..
    能不能告诉我怎么通过发送消息获取当前combo的内容的....
      

  13.   

    TO ben_jiang(木头) :
    那个1001的ID好像不行吧...因为对话框上不止一个COMBO BOX的...这样就分不清楚是哪个了...