LISTBOX如何响应键盘按键?

时间:2023-02-20 09:26:06
有两个问题:
1. listbox能盛放的最多无素的个数是多少?有限制吗?
2. listbox如何响应键盘消息?
比如:listbox存入的内容如下图所示:
192.168.1.1
10.l.1.9
20.1.1.9
66.9.10.22

那么,当我在键盘上敲入:66.9.10.22时,光标会自动跟踪到上图的第4个item的位置,即setfocus到第4个位置?如何实现?谢谢

8 个解决方案

#1


http://www.codeproject.com/combobox/combocompletion.asp

#2


学习


帮顶下

#3



请看下面的函数:

CListBox::GetCount 
int GetCount( ) const;


返回值为 int 型。

#4


1.可以建立一个动态数据(这个是用做索引的)
std::vector<CString> m_Indexstring;
m_IndexString.push_back(192.168.1.1);
等等.
2.记录用户连续摁的键,也就是并拼凑成字符串.
3.遍历数组,如果找到匹配的,则设置该项为选中状态.
这里可能会产生效率的问题,不过可以使用不断更新数组的方式来,匹配,如输入1,则把为1的增加到临时的动态数组中,不断更新临时数组达到速度上的要求

#5


并且最好让listbox是排序的,这样速度会快点.

#6


dyw(道不同不相为谋) ( ) 的例子不是listbox的,
有没有现成的例子?谢谢各位

#7


做法差不多。找到最匹配的后,滚动ListBox索引

#8


程序加一个键盘响应事件
拼接键盘输入的符号strIP,当按下ENTER键时:
int mCount = m_comboxbj.GetCount();
for(int i=0;i<mCount;i++)
{
 CString sCombox;
 m_comboxbj.GetLBText(i,sCombox);
 if(!strcmp(strIP,sCombox))
 {
   m_comboxbj.SetCurSel(i);
   break;
 }
}

#1


http://www.codeproject.com/combobox/combocompletion.asp

#2


学习


帮顶下

#3



请看下面的函数:

CListBox::GetCount 
int GetCount( ) const;


返回值为 int 型。

#4


1.可以建立一个动态数据(这个是用做索引的)
std::vector<CString> m_Indexstring;
m_IndexString.push_back(192.168.1.1);
等等.
2.记录用户连续摁的键,也就是并拼凑成字符串.
3.遍历数组,如果找到匹配的,则设置该项为选中状态.
这里可能会产生效率的问题,不过可以使用不断更新数组的方式来,匹配,如输入1,则把为1的增加到临时的动态数组中,不断更新临时数组达到速度上的要求

#5


并且最好让listbox是排序的,这样速度会快点.

#6


dyw(道不同不相为谋) ( ) 的例子不是listbox的,
有没有现成的例子?谢谢各位

#7


做法差不多。找到最匹配的后,滚动ListBox索引

#8


程序加一个键盘响应事件
拼接键盘输入的符号strIP,当按下ENTER键时:
int mCount = m_comboxbj.GetCount();
for(int i=0;i<mCount;i++)
{
 CString sCombox;
 m_comboxbj.GetLBText(i,sCombox);
 if(!strcmp(strIP,sCombox))
 {
   m_comboxbj.SetCurSel(i);
   break;
 }
}