我知道,如果取当前值或设置当前值可以用
GetWindowText()
SetWindowText()但要取出和设置所有的值呢?用哪个API,高手帮忙啊工程要用,很急,谢谢大家了!!!

解决方案 »

  1.   

    API是没有的,控件都是通过消息来控制的。MFC的话,可以用CComboBox::GetLBText()等成员函数,API可以发送CB_GETLBTEXT消息,
      

  2.   

    int nCnt = SendMessage(hCombo,CB_GETCOUNT,0,0);
    for(int i=0;i<nCnt;i++)
    {
       SendMessage(hCombo,CB_GETLBTEXT,i,buf);
       ...
    }
      

  3.   

    API就是SendMessage,发CB_ADDSTRING、CB_INSERTSTRING、CB_GETLBTEXT消息。
      

  4.   

    谢谢各位,特别是cnzdgs ...问题已得到很好的解决。顺便把组合框的MSG放在此处:API:
    ---------------------------------------------
    SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam); ComboBox消息:
    ---------------------------------------------
    CB_ADDSTRlNG  增加一项 
    CB_DELETESTRING  删除指定的项 
    CB_DIR  发送搜索目录的消息 
    CB_FINDSTRING  搜索指定的项 
    CB_FINDSTRINGEXACT  精确搜索指定的项 
    CB_GETCOUNT  得到组合框中项的数目 
    CB_GETCURSEL  得到当前选中项的序号 
    CB_GETEDITSEL  得到编辑区域选中的文本 
    CB_GETLBTEXT   得到编辑区域的文本 
    CB_GETLBTEXTLEN  得到编辑区域中文本的长度 
    CB_LIMITTEXT  发送限制编辑区域文本的消息 
    CB_RESETCONTENT  删除所有的项 
    CB_SELECTSTRING  选中指定的字符串 
    CB_SETCURSEL  将光标设置在指定的位置 
    CB_SETDROPPEDWIDTH  设置下拉的宽度 
    CB_SETEDITSEL  选取编辑区域的文本 
    CBN_CLOSEUP  关闭组合框 
    CBN_DBLCLK  发送用户双击组合框中项的消息 
    CBN_DROPDOWN  下拉时发送消息 
    CBN_EDITCHANGE  发送编辑区域改变的消息 
    CBN_EDITUPDATE  发送编辑区域改变的消息,但在更新之前发送 
    CBN_ERRSPACE  发送内存不够的消息 
    CBN_KILLFOCUS  当组合框失去输入焦点时发送该消息 
    CBN_SETFOCUS  设置输入焦点
    ---------------------------------------------