--------------------------------------不少人对组合框的使用存在疑惑,提出过不少次的提问,针对这个问题,从网上抄下一些资料,供大家参考
当 用 资 源 编 辑 器 在 一 个 对 话 框 中 生 成 组 合 框 控件 时, 可 以 看 到 组 合 框 两 侧 的 控 制 点 是 实 心,
而 上 下四 周 的 控 制 点 是 虚 心 的, 即 组 合 框 水 平 方 向 的 大 小 可以 通 过 拖 动 组 合 框 控 件 两 侧 的 实 心
控 制 点 改 变, 垂 直方 向 的 大 小 则 不 能 改 变。 为 了 改 变 垂 直 方 向 的 大 小,可 以 用 鼠 标 单 击 组 合 框 控
件 的 下 拉 箭 头, 可 以 看 到 控件 的 上 下 的 控 制 点 变 成 实 心, 此 时 可 以 拖 动 该 控 制 点将 组 合 框 的 高
度 改 变。 当 运 行 程 序 时, 按 下 下 拉 箭头,Windows 利 用 该 高 度 重 置 组 合 框 的 大 小。
---- 如 果 组 合 框 中 各 列 表 项 是 固 定 的, 则 可 以 预 先 将这 些 项 写 进 组 合 框。 方 法 是: 打 开 资 源 编 辑
器, 从 组合 框 的 属 性(Proprities) 对 话 框 中 选 择Data 标 签, 在"Enter listbox Items" 列 表 框 中 填 加 各 列 表 项,
注 意 加 完 一 项 换行 时, 必 须 用Ctrl+Enter 组 合 键。 如 果 希 望 以 输 入 的 次 序来 显 示 各 项, 则 不 要 选 择
Styles 标 签 的Sort 项。 填 加 完 列表 项 后, 利 用 上 述 方 法 改 变 组 合 框 的 高 度( 否 则 程 序运 行 后, 单 击 组
合 框 下 拉 箭 头 列 表 框 不 出 现), 这样, 运 行 程 序 后, 单 击 组 合 框 的 下 拉 箭 头 可 以 看 到 各列 表 项 已
加 入 到 组 合 框 的 列 表 框 中。
int GetCurSel() const 得到当前选项的索引,
失败则返回CB_ERR。
Int SetCurSel(int nSelect);
如果函数调用成功,返回当前选项索引。如果nSelect的值超出范围,或为-1,则返回CB_ERR,并清除当前选项。
int GetLBText(int nIndex,Cstring& rString ) const
void GetLBText(int nIndex, LPTSTR lpszText) const
如果函数调用成功,则返回字符串的字节长度(不包括末尾的空字符)。如果nIndex并非合法的索引,则返回CB_ERR。
nIndex----指定将获取文本选项的索引。
LpszText---指定将用以存放所得文本的缓冲区指针。该缓冲区必须足够容纳要获取的文本及其结尾空字符。
rString:用于存放所的文本的Cstring对象
int GetLBTextLen( int nIndex) const
如果函数调用成功,则返回字符串的字节长度(不包括末尾的空字符)。如果nIndex并非合法的索引,则返回CB_ERR。
nIndex----指定将获取组合框选项的索引。
-----------------------------------------------------------
ComboBox(下拉框)的用法:
CComboBox m_cob;
CString m_Getstring;
m_cob.GetLBText(m_cob.GetCurSel(),m_Getstring);//把选择的内容传给m_Getstring
void CBaDialog::OnTimer(UINT nIDEvent)
{ //设置列表框的选择 当再一次选择时 重新设置按钮的属性
// TODO: Add your message handler code here and/or call default
CString m_string;
m_cob.GetLBText(m_cob.GetCurSel(),m_string);
if(m_Getstring!=m_string)
{
GetDlgItem(IDC_STATR)->EnableWindow(TRUE);
this->Enable(FALSE);
}
CDialog::OnTimer(nIDEvent);
}