none
CComboBox设置问题 RRS feed

  • 问题

  • 我使用CComboBox显示一个列表数据。理想的状况是,即允许输入又可以下拉选择。输入的时候,下拉列表框跟随输入不断缩小范围。不输入值的时候,也可以点下拉箭头从列表中选择。

    可是我在添加数据的时候,

    ((CComboBox *)GetDlgItem(IDC_BDB_COMBO_IN))->InsertString(-1, CString(pszValue));

    只有在CComboBox的Type属性选择“下拉列表”时,才能显示插进去的数据。但是不能输入值,只能从列表中选择。

    如果Type选择“Simple”或者"DropDown时,这个值都插不进去。

    并且,如果这个插件,如果选择CComboBoxEx,就无论如何也不能插进去值。

    多谢指点!

    2016年11月17日 11:23

全部回复

  • 请参考一下这个,希望对您有所帮助~

    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2016年11月17日 12:53
    版主
  • 我下了这个工程,但是编译有一个奇怪的error:

    akautocomplete_pro2\autocomplete\aclistwnd.cpp(82): error C2440: “static_cast”: 无法从“UINT (__thiscall CACListWnd::* )(CPoint)”转换为“LRESULT (__thiscall CWnd::* )(CPoint)”
    
    note: 从基类型到派生类型的强制转换需要 dynamic_cast 或 static_cast
    
    BEGIN_MESSAGE_MAP(CACListWnd, CWnd)
    
            ...
            ON_WM_NCHITTEST()
            ...
    END_MESSAGE_MAP()


    而这个宏定义在VC的库里:afxmsg_.h

    #define ON_WM_NCHITTEST() \
    { WM_NCHITTEST, 0, 0, 0, AfxSig_l_p, \
    (AFX_PMSG)(AFX_PMSGW) \
    (static_cast< LRESULT (AFX_MSG_CALL CWnd::*)(CPoint) > (&ThisClass :: OnNcHitTest)) }

    这个应该不是AutoComplete代码的原因。可能是VC版本的原因?

    我用的是VisualStudio 2015社区版,最新的更新Update3。


    2016年11月18日 5:15
  • Hi BruceLiu_sh,

    thanks for posting here.

    >>只有在CComboBox的Type属性选择“下拉列表”时,才能显示插进去的数据。但是不能输入值,只能从列表中选择。

    如果Type选择“Simple”或者"DropDown时,这个值都插不进去。

    并且,如果这个插件,如果选择CComboBoxEx,就无论如何也不能插进去值。

    对于这种情况,我建议你使用下拉列表属性。并调用GetWindowText()SetWindowText()函数输入字符串。

    具体使用方法,可以参考以下文档。

    http://www.codeproject.com/Articles/783/Implementing-an-autocompleting-Combobox

    希望对你有所帮助。

    Best Regards,
    Sera Yu


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2016年11月18日 7:27