怎样设置ComboBox的默认值?

千分散尽还复来 2011-12-01 02:33:12
VS2005 C++ Windows编程,纯API的:
手动创建的复合框(ComboBox),带列表框的那种,和对话框模板创建的都无法在顶端显示默认文本。怎么办?
谢谢!
...全文
266 点赞 收藏 4
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
baiuanswer 2011-12-16
设置当前选项用SetCurSel函数,函数原型如下:
int SetCurSel(
int nSelect //指定当前的选择项,基于0索引
);

在对话框的OnInitDialog函数中添加

BOOL CXXXDlg::OnInitDialog()
{
......
m_ctlCombox.SetCurSel(0);
......
}

对comboBox控件添加变量一般都是选Contral,这样可以用变量调用类成员函数,比如获取当前编辑框内容的接口函数GetLBText


-------------------------------------引用别人的
回复
iblold 2011-12-08
_AFXWIN_INLINE int CComboBox::SetCurSel(int nSelect)
{ ASSERT(::IsWindow(m_hWnd)); return (int)::SendMessage(m_hWnd, CB_SETCURSEL, nSelect, 0); }

直接用WIN32 API写窗口的话,遇到不知道怎么控制的控件时,就去看看MFC里面同样地控件
MFC就是封装的WIN32 API操作。

你这个直接调用
::SendMessage(hComboBoxWnd, CB_SETCURSEL, 0, 0);
就行了
回复
chenlu0538 2011-12-08
我也遇到过类似问题,用代码解决的。
在你的ComboBox所在的对话框类的初始化函数中,在已经addstring了可选值之后,SetCurSel一下就可以了,比如你想添加的是“一,二,三”,对应的是0,1,2这三个索引值,而你想让他初始化后显示第1个索引值对着的“二”,那就是:
BOOL DlgChannelParam::OnInitDialog()
{
if (CDialog::OnInitDialog())

{
client_num.addstring("一");
client_num.addstring("二");
client_num.addstring("三");

client_num.SetCurSel(1);
}
}

以上就可了~~~
回复
顶一下,求高人指路。
谢谢!
回复
发动态
发帖子
工具平台和程序库
创建于2007-09-28

2.4w+

社区成员

C/C++ 工具平台和程序库
申请成为版主
社区公告
暂无公告