CComboBox::SelectString使用时注意事项


搜索在组合框的列表框中的字符串,并且,如果找到该字符串,选择列表框和复制的字符串到编辑控件。

 int SelectString(
    int nStartAfter,
    LPCTSTR lpszString
 );
 参数

--------------------------------------------------------------------------------
 nStartAfter
在要搜索的第一项之前包含项的从零开始的索引。  在搜索到达列表框的底部时,它从列表框的顶部继续回 nStartAfter指定的项。  如果 – 1,整个列表框从开始处搜索。
lpszString
指向包含标题搜索的 NULL 终止的字符串。  搜索区分大小写的,因此,此字符串可以包含大写和小写字母的任意组合。

 返回值 
--------------------------------------------------------------------------------
选定项的从零开始的索引, 如果搜索不成功,则返回值是 CB_ERR ,并且不更改当前选择。

 备注 
--------------------------------------------------------------------------------
搜索字符串时,仅在其初始字符 (从起点) 与前缀字符串的字符。
请注意 SelectString 和 FindString 成员函数两个查找字符串,但是, SelectString 成员函数来选择该字符串。
示例 
--------------------------------------------------------------------------------
// The string to match.
LPCTSTR lpszSelect = _T("item");

// Select the item that begins with the specified string.
int nSel = m_pComboBox->SelectString(0, lpszSelect);
ASSERT(nSel != CB_ERR);
注:

如下图所示,Data框中有1到15个COM串口

获取数据和设置的代码如下
LPCTSTR lpszSelect = _T("");

m_pComboBox->GetWindowText(lpszSelect, 10 );

m_pComboBox->SelectString(0, lpszSelect);

在组合框中选择com1后,保存设置,如下图所示

重新打开后,变为COM10,如下图所示

处理方法是把SelectString的索引值改为-1,整个列表框从开始处搜索,如果为0,则从索引为0处开始搜索,将会跳过COM1

 

 

 

 

 


注意:本文归作者所有,未经作者允许,不得转载