Buenas a todos, a continuación les dejo mi código el cual agrega a un listbox el color del píxel en donde se encuentra el mouse, al moverse el mismo. Para saber cuando se mueve he instalado un hook mediante SetWindowsHookEx, pero eso no es lo importante. El problema es que utilizo SendMessage, con la Constante LB_FINDSTRINGEXACT la cual busca una Cadena. Pero me estoy volviendo loco ya que hago una condición (sentencia if) la cual dicta que si devuelva False, la función que busca el Color en el listbox, no agregue al color obtenido. Esto para evitar que se me agreguen múltiples veces el mismo color, y después me vuelvo loco identificando cada uno. Pero no me devuelve false, o algún error estoy cometiendo en el código que no puedo identificar, por eso estoy aqui! He aquí el código:
La función que busca el string:
Public Function Encuentra(Frase As String) As Boolean
Dim Indice As Long
' Tipo de búsqueda
Indice = SendMessage(fMain.List1.hwnd, LB_FINDSTRINGEXACT, -1, Frase)
If Indice < 0 Then
'no se encontró
Encuentra = False
Else
' se encontró la frase entonces la selecciona
Encuentra = True
End If
End Function
Aquí donde se utiliza:
Dim hdc As Long
Call GetCursorPos(Mouse)
'Get Color
hdc = GetDC(0)
pxColor = GetPixel(hdc, Mouse.x, Mouse.y)
ReleaseDC 0, hdc
'Set color
Picture1.BackColor = pxColor
If Encuentra(Hex(pxColor)) = False Then
List1.AddItem Hex(pxColor)
End If
Por algúna razón me agrega varias veces el mismo color encontrado, lo cual no debería, si es que lo encuentra en la condición planteada.
Gracias desde ya, saludos!