MFC搜索编辑框

时间:2012-06-12 07:51:36

标签: visual-c++ mfc cedit

我正在寻找像这样的搜索框控件 enter image description here

MFC中是否有可用的控件,或者我们需要创建自己的控件,

我们可以参考任何示例/参考代码,我尝试使用谷歌搜索,但我更喜欢CEditComboBox示例,而不是这种类型的控件。

先谢谢

2 个答案:

答案 0 :(得分:2)

如果您使用的是VS2008 SP1或更高版本,则可以使用CMFCEditBrowseCtrl

这是一个带按钮的编辑控件。当您按下按钮时,它内置了“浏览文件”或“浏览文件夹”操作,但您可以创建自己的自定义操作(搜索),还可以自定义按钮图像。

查看EnableBrowseButtonOnBrowse上的文档以了解如何自定义操作,并SetBrowseButtonImage自定义图像。

答案 1 :(得分:0)

除了在CListBox中搜索外,我还需要这样的功能。 以下是当用户在编辑框中键入时使用EN_CHANGE通知我设法做的事情:

  • m_sSearch是与CEdit控件关联的CString
  • m_lbRequest是与同一控件关联的CListBox
void CRequestDlg::OnEnChangeEditSearch()
{   
    UpdateData(TRUE);
    string sEdit = m_sSearch.GetBuffer(m_sSearch.GetLength());
    string sTmp;
    for ( int n_pos = 0; n_pos < m_lbRequest.GetCount(); n_pos++ )
    {
        CString temp;
        m_lbRequest.GetText(n_pos, temp);
        sTmp = string(temp);
        if ( sTmp.find(m_sSearch) != string::npos )
        {
            m_lbRequest.SetCurSel(n_pos);
            break;
        }
    } 
    UpdateData(FALSE);
}