将高度调高,否则在执行时会不能显示下拉选项。 2.为 combo box 添加选项,在编辑状态下选 combo box 控件的属性,选 Data 标签, 在编辑框中添加选项,按 Ctrl-Enter 来添加下一个选项。 3.为 combo box 添加变量 combo box 有两个变量,CComboBox 类变量和 CString 变量。 CComboBox 变量用来设定 combo box 的属性, 一般在 cdialog 类中的 oninitdialog()函数中 使用。添加方式是在 classwizard 中添加变量,添加时 Category 中选 Control。例如: CComboBox.SetCurSel(0)用来设定下拉菜单初始值,具体看 MSDN。CString 变量用来存储下拉菜单所选的选项值。同样,当选项出现差异时要使用 UpdateData(TRUE)函数更新该数组的值。 ---------------------------------------------------------------------------------------------------------------------------一、初始化 Combo Box 控件 (1)在资源视图中,选择控件的"Properties",然后在 Data 选项卡里为控件添加初始化 数据,换行是按 Ctrl+Enter,然后,再设置 Style 选项卡里的 Type 属性为 Drop List。

(2)在程序初始化时动态添加 CString strTemp; ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent(); //消除 ID 为 IDC_COMBO_CF 现有所有内容 for(int i=1;i<=100;i++) { strTemp.Format("%d",i); ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp); //为控件添加初始 化数据 } (3)删除 DeleteString( UINT nIndex ) //删除指定行 (4)插入 InsertString( int nIndex, LPCTSTR lpszItem ) //将行插入到指定位置 (5)查找 FindString( int nStartAfter, LPCTSTR lpszItem ) //可以在当前所有行中查找指定的数组传 的位置,nStartAfter 指明从那一行开始进行查找。 int SelectString( int nStartAfter, LPCTSTR lpszItem ) //可以选中包含指定字符串的行 二、如何控制 Combo Box 的下拉长度 1,首先要知道两点:一、那就是在设计图标里,点击一下 Combo Box 的下拉箭头, 此时出现的调整框就是 Combo Box 的下拉调整框。
2,二、属性里有个 No integral height 钩选项,表示最大长度为设计尺寸,如果实际内容 比设计尺寸多,就出现滚动条,少就以实际长度显示。 三、选择其中的某行 (1)选中: int iPos=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCurSel(); //当前选中的行。 (2)设置 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->SetCurSel(n) //设置第 n 行内容为显示的 内容。 四、取得 Combo Box 框内容 (1)取当前内容 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetWindowText(strTemp); //将获得的值 存放到 CString 类型数组 strTemp 中。 如果定义了关联的函数,例如 m_combo,可以直接获取: m_combo->GetWindowText(strTemp); (2)取其它行内容 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetLBText(n,strTemp); //其中 n 为从 0 开始的索引值 五、获取当前选取的行数 例如:((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCurSel() 返回的是当前 选中值的行数,是整型。
或者:UINT m_row = m_combo->GetCurSel() 六、获得焦点 通常要判定控件是否拿到了焦点,可以用 GetFocus()函数 例如:if(GetFocus()==GetDlgItem(IDC_EDIT_VALUE2))//判断焦点是否在编辑框 IDC_EDIT_VALUE2 内。 但是 combobox 的焦点不同,因为它是由 edit 和 listbox 两个别组成的因而取得焦点要用 GetParent():if ((GetFocus()->GetParent())==GetDlgItem(IDC_COMBO_CF)) ----------------------------------------------------------------------------------------------------------------------------一、如何添加/删除 Combo Box 内容 1,在 Combo Box 控件属性的 Data 标签上面添加,一行表示 Combo Box 下拉列表中 的一行。换行用 ctrl+回车。
2,在程序初始化时动态添加 如: //控件内容初始化 CString strTemp; ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent(); //消除现有所有内容 for(int i=1;i<=100;i++) { strTemp.Format("%d",i); ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp); } 3,下拉的之后添加 如: CString strTemp; int iCount=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCount(); //取得现在终于 有的行数 if(iCount<1)//防止重复多次添加 { ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent(); for(int i=1;i<=100;i++) { strTemp.Format("%d",i); ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->AddString(strTemp); } }4,删除 DeleteString( UINT nIndex ) //删除指定行, 5,插入 InsertString( int nIndex, LPCTSTR lpszItem ) //将行插入到选定位置 6,查找 FindString( int nStartAfter, LPCTSTR lpszItem ) //可以在当前所有行中查找指定的数组传 的位置,nStartAfter 指明从那一行开始进行查找。
int SelectString( int nStartAfter, LPCTSTR lpszItem ) //可以选中包含指定字符串的行二、如何控制 Combo Box 的下拉长度 1,首先要知道两点:一、那就是在设计图标里,点击一下 Combo Box 的下拉箭头, 此时出现的调整框就是 Combo Box 的下拉调整框。 2,二、属性里有个 No integral height 钩选项,表示最大长度为设计尺寸,如果实际内容 比设计尺寸多,就出现滚动条,少就以实际长度显示。 三、选择其中的某行 1,选中: int iPos=((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetCurSel(); //当前选中的行。 2,设置 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->SetCurSel(n) //设置第 n 行内容为显示的 内容。 四、取得 Combo Box 框内容 1 取当前内容 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetWindowText(strTemp); 2 取其它行内容 ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->GetLBText(n,strTemp); ----------------------------------------------------------------------------------------------------------------------------两个 DropDownList 控件,选择第一个后,第二个根据第一个搜索表内容填充 信息。 问题是,第一个 DropDownList 控件,我实现了 SelectedIndexChanged 事件,不过貌似没反应啊。 谢谢 把 Postback 设成 True
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-128622-3.html
抽检是随机调查
不怕事
但发展方向是对的