简单的获取Combobox的选中内容是很简单的:
CString strChoosed; m_mediaCombox.GetLBText(m_mediaCombox.GetCurSel(),strChoosed); 但是如何获取输入的文本呢: m_mediaCombox.GetWindowsText(strChoosed); 不错就这么简单 转:http://my.csdn.net/ccf19881030/code/detail/25106 这是一篇不错的文章,关于Combobox
1、获取组合框控制句柄
添加成员变量comboboxCtr;或者
CComboBoxEx* comboboxCtr = (CComboBoxEx*)GetDlgItem(BOX_ID);
2、点击下拉框不显示下拉列表(问题)
对话框编辑器里,把列表往下拖长一点即可。
3、设置展开下拉列表、设置输入框只读、清空列表内容
CComboBoxEx* comboboxCtr = (CComboBoxEx*)GetDlgItem(BOX_ID);
comboboxCtr->ShowDropDown(TRUE);
comboboxCtr->GetEditCtrl()->SetReadOnly(TRUE);
comboboxCtr->ResetContent();
4、添加列表内容
CComboBoxEx* comboboxCtr = (CComboBoxEx*)GetDlgItem(BOX_ID);CString inputTxt("要插入的内容。");
COMBOBOXEXITEMW* insertItem = new COMBOBOXEXITEM();
insertItem->iImage = 0; //图标索引值
insertItem->iOverlay = 0;
insertItem->pszText = (LPWSTR)(LPCTSTR)inputTxt; //字符串内容
insertItem->mask = CBEIF_IMAGE|CBEIF_TEXT; //指定列表项图片或者文本方式
comboboxCtr->InsertItem(insertItem);
5、调用ShowDropDown()方法后不显示光标
因为编辑框改变的时候把光标改变成IDC_ICON。
ccomboboxVar.ShowDropDown();
SetCursor(LoadCursor(NULL,IDC_ARROW));
在调用 ShowDropDown()方法后加上置光标的语句。
6、如何设置组合框CComboBox里面的值、获取当前所选择组合框的值?
1、设置组合框CComboBox里面的值
2、获取当前所选择组合框的值
MFC的话,可以用CComboBox::GetLBText()等成员函数,API可以发送CB_GETLBTEXT消息,
(1)MFC
//获取用户选择的Combox控件的值
CString strChoosed;
m_mediaCombox.GetLBText(m_mediaCombox.GetCurSel(),strChoosed);
(2)API
API就是SendMessage,发CB_ADDSTRING、CB_INSERTSTRING、CB_GETLBTEXT消息。
int nCnt = SendMessage(hCombo,CB_GETCOUNT,0,0);
for(int i=0;i<nCnt;i++)
{
SendMessage(hCombo,CB_GETLBTEXT,i,buf);
...
}
7、清空组合框内容
我做了一个组合框,并为其定义如下(通过classwizard定义的)
CComboBox m_ctrSinger;
m_ctrSinger.ResetContent()
clear只是清除当前选中的内容,resetcontent()才是清空所有内容
CComboBox::ResetContent
void ResetContent( );
说明:
本函数删除组合框中列表和编辑控件中的所有项。
请参阅:CB_RESETCONTENT
方法2:
CComboBox *pmyComboBox;
for (int i=0;i < pmyComboBox-> GetCount();i++)
{
pmyComboBox-> DeleteString( i );
}
把组合框的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 设置输入焦点