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

进攻进攻 2010-07-07 07:56:39
我想做个简单的浏览器,
在MainFrame上创建了一个组合框,用来做地址栏;
View用的是ChtmlView.
搞了半天,也没法在地址栏里面输入字符;
setfocus();
setcaret();
都没有成功 ...
请大侠们不吝赐教!!
...全文
253 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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的搜索提示功能。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧