¿Cómo creo un ComboBox MFC con búsqueda?
-
19-08-2019 - |
Pregunta
Necesito un cuadro combinado en una aplicación MFC de Windows que tenga una función de búsqueda. Debería funcionar de modo que si comienza a escribir algo que coincida con uno o más elementos de la lista, el cuadro combinado debe desplegarse y mostrar esos elementos. Un poco como los populares cuadros de búsqueda basados ??en ajax en la web
¿Tú - ¿Conoces algún control que proporcione esta funcionalidad? - ¿Tengo un enlace a información sobre cómo crear tal funcionalidad yo mismo? - ¿tiene ideas sobre cómo hacer esto que podría compartir?
Solución
Encontré esto:
http://www.codeguru.com/cpp/ controles / combobox / article.php / c1807 /
Cambió el nombre de la clase ya que CComboBoxEx ahora forma parte de MFC y agregó una llamada ShowDropDown () en OnEditUpdate ().
Otros consejos
Es una FAQ de Win32 api. Ver Adv. Win32 api ng news: //194.177.96.26/comp.os.ms-windows.programmer.win32 (no necesita nada CBN_EDITCHANGE. Es automático con api)
Acceso completo al cuadro de edición del cuadro combinado:
CEdit *pEdit = (CEdit *)pComboBox->GetWindow(GW_CHILD);
CEdit * pEdit = (CEdit *) pComboBox- > GetWindow (GW_CHILD);
¿Puedo obtener acceso a la parte ListBox de manera similar? Necesita borrar el contenido de la lista, p. usando ResetContent.
Proporcione un controlador para el evento CBN_EDITCHANGE
, su controlador & # 246; ser llamado cada vez que el usuario cambia el texto en el campo de edición.
En este controlador, llame al método CComboBox :: FindString ()
para ver si el texto escrito existe en alguna de sus entradas de cuadro combinado. Si es así, llame a CComboBox :: SetCurSel ()
para seleccionarlo.