65.9K
CodeProject is changing. Read more.
Home

Smart Auto-Complete (and Easy )

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.32/5 (13 votes)

Jun 30, 2003

viewsIcon

52732

downloadIcon

1031

A Edit that Automatically completes your words

Introduction

You must override the two virtuals.

  • bool OnSearch(LPCTSTR szFilter); // return true if found , false otherwise

and

  • void OnFillList(); //Use this virtual to fill "AutoComplete-List"

You must take care with settings like DelayTime, MinChars etc. See the header files for more information

Code Listing

class CAutoIni : public CAutoEdit  
{
public:
    void DeleteString(LPCSTR szKey);
    int AddString(LPCSTR szEntry);
    virtual bool OnSearch(LPCTSTR szFilter);
    CAutoIni();
    virtual ~CAutoIni();
protected:
    int m_iMaxKeys;
    CString m_strSectionName;// set the section for .ini or reg
    CString m_strNumItemsKey;// if not set: default is "NumItens"
    CString m_strItemDataKey;// if not set: default is "Item"
public:
    inline void SetKeyNumItem(LPCTSTR szKeyName)
    {
        m_strNumItemsKey = szKeyName;
    }

    inline CString GetKeyNumItem()
    {
        return m_strNumItemsKey;
    }

    inline void SetMaxKeys(int iMax)
    {
        m_iMaxKeys;
    }

    inline int GetMaxKeys()
    {
        return m_iMaxKeys;
    }

    inline void SetItemKey(LPCTSTR szItemKey)
    {
        m_strItemDataKey = szItemKey;
    }

    inline CString GetItemKey()
    {
        return m_strItemDataKey;
    }


    //{{AFX_VIRTUAL(CAutoIni)
    //}}AFX_VIRTUAL

    //{{AFX_MSG(CAutoIni)
    //}}AFX_MSG

    DECLARE_MESSAGE_MAP()

protected:
    virtual void OnFillList();
};