虔诚求助:CComboBox类的光标设置问题

进攻进攻 2010-07-07 07:56:39
我想做个简单的浏览器,
在MainFrame上创建了一个组合框,用来做地址栏;
View用的是ChtmlView.
搞了半天,也没法在地址栏里面输入字符;
setfocus();
setcaret();
都没有成功 ...
请大侠们不吝赐教!!
...全文
190 点赞 收藏 6
写回复
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
进攻进攻 2010-08-16
我并没有设置成list风格啊::
if(!m_wndAddress.Create(CBS_DROPDOWN | WS_VISIBLE | WS_CHILD , CRect(300, 0, 600, 100), this, AFX_IDS_PREVIEW_CLOSE+1))
{
AfxMessageBox("Failed to create combobox\n");
return -1;
}

就是这样。
就是不能输入~
回复
山伟 2010-07-12
ls都说了,我沉默下!
回复
Eleven 2010-07-08
同上,你创建CComboBox控件的时候,设置了CBRS_DROPDOWNLIST风格
回复
雪影 2010-07-08
# CBS_DROPDOWN 下拉式组合框
# CBS_DROPDOWNLIST 下拉式组合框,但是输入框内不能进行输入

lz是不是设置了Drap list风格了? 导致不能输入
回复
进攻进攻 2010-07-08
楼上兄台,好像不是VC6下的~
回复
onezeros 2010-07-07
http://ling091.javaeye.com/blog/337583

comboBox输入自动提示(仿ie地址栏)[转]
关键字: combobox 自动提示
转载地址:http://www.cnblogs.com/surpass/archive/2008/10/10/1307718.html


最近在做项目的时候,需要使用comboBox实现类似ie下拉列表一样的功能!最直接的思路是监听comboBox的textChanged事件,当事件发生时,从数据(我是用arrayList暂存数据的)中匹配出符合的字符串,然后添加到comboBox的下拉列表中。
1:如何在textChanged显示下拉列表,因为显示下拉列表一般是用户点击下拉的箭头显示的,后来使用 comboBox1.DroppedDown = true; 可以显示下拉列表的内容。
2:向下拉列表添加内容: comboBox1.Items.Add(str); 使用此语句可以添加str到下拉列表中
3:删除下拉列表的内容?因为当comboBox的text改变时,原来匹配的下来列表中的内容可能不再匹配,这样我的思路是ext改变时将下拉列表内容全部删除,然后再重新遍历集合,将匹配的内容重新添加到下拉列表里: comboBox1.Items.Clear(); 可是这个语句会出现一个问题,就是text中的光标会自动跑到最左端:这样,这条思路没有继续下去,而且发现这样实现有时候鼠标会丢失光标,感觉很不好!
4:后来查到comboBox和textBox支持内置的搜索提示功能,在form的InitializeComponent()中添加如下语句:
this.comboBox1.AutoCompleteCustomSource.AddRange(new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" });
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;
其中this.comboBox1.AutoCompleteCustomSource.AddRange(new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" });是将数据添加到搜索范围
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
是设定comboBox完成内置的搜索,默认是None,还有Append,和SuggestAppend属性,除了默认的None都可以实现搜索提示的功能,只是外观有所不同而已
this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.CustomSource;制定搜索范围,由于在此我是选用new string[] { "10.152.154.89", "10.152.154.90", "10.152.252.10", "10.152.252.11" }作为自己的搜索范围,所以定义为CustomSource
System.Windows.Forms.AutoCompleteSource还有个Allurl属性,如果将代码改为
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.Allurl;
这样该comboBox可以实现同ie下拉列表一样的功能,其他的属性如AllSystemSources可以自己尝试,这样就完成了comboBox的搜索提示功能。
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告
暂无公告