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的增加到临时的动态数组中,不断更新临时数组达到速度上的要求
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;
}
}
拼接键盘输入的符号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的增加到临时的动态数组中,不断更新临时数组达到速度上的要求
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;
}
}
拼接键盘输入的符号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;
}
}