SendMessageLong

Que tal Black, espero que me puedas echar una ayudita con esto.
Creo que debes tener conocimiento sobre la función SendMessageLong de la API de windows; bueno en fin, el caso es que quiero ver si conoces el parámetro o constante de esta función, que permite enviar mensajes de búsqueda dentro de un combo. Ejemplo
Tengo un combo con 3 items: Carro, Casa, Teléfono. La idea es que a medida que edite en este control, este se vaya moviendo dentro de los items que contiene en su list.
Yo se que la función SendMessage te permite hacerlo pero con un list y otro control.
Si te sabes el parámetro te agradezco me ayudes con esto, sino seria bueno que me recomendaras un sitio donde pueda conseguir información sobre esta función
De antemano Gracias

1 Respuesta

Respuesta
1
Prueba con esto, lo he sacado de mi biblioteca personal, no es mio, reconozco mi código, supongo que lo saqué de www.vbaccelerator o de www.freevbcode.com
Option Explicit
Private Declare Function SendMessagebyString Lib _
"user32" Alias "SendMessageA" (ByVal hWND As Long, _
ByVal wMsg As Long, ByVal wParam As Long, _
ByVal lParam As String) As Long
Private Const LB_FINDSTRINGEXACT = &H1A2
Private Const CB_FINDSTRINGEXACT = &H158
Public Function FindStringinListControl(ListControl As Object, _
ByVal SearchText As String) As Long
'Input:
'ListControl: List or ComboBox Object
'SearchText: String to Search For
'Returns: ListIndex of Item if found
'or -1 if not found
Dim lHwnd As Long
Dim lMsg As Long
On Error Resume Next
lHwnd = ListControl.hWND
If TypeOf ListControl Is ListBox Then
lMsg = LB_FINDSTRINGEXACT
ElseIf TypeOf ListControl Is ComboBox Then
lMsg = CB_FINDSTRINGEXACT
Else
FindStringinListControl = -1
Exit Function
End If
FindStringinListControl = SendMessagebyString _
(lHwnd, lMsg, -1, SearchText)
End Function
Me has sacado la pata del barro, con esta función ahora puedo ir buscando en una lista de elementos de un ComboBox, a medida que voy editando. Lo único fue que me dijiste el parámetro para buscar la cadena de string exacta, y yo necesitaba que fuera lo que introdujera el usuario. De cualquier manera lo consegui en el visor de texto API, hay te lo mando por si te hace falta CB_FINDSTRING = &H14C. Muchas gracias hermano

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas