Encontrar problemas con LISTBOX en VB6.0
'Requiere tres controles: Comando1, texto1 y cuadro de lista
'Defecto: si hay varias filas que cumplen las condiciones, solo se muestra la última fila, modifíquela usted mismo ; la visualización está incompleta después del cambio de color, puede agregar Etiqueta1 para mostrar.
Opción explícita
Tipo privado RECT
Izquierda mientras sea larga
Arriba mientras sea larga
Derecha mientras sea larga
Inferior siempre
Tipo final
Const privada LB_ITEMFROMPOINT = &H1A9
Const privada LB_GETITEMRECT = &H198
Const privada DT_LEFT = &H0
Const privada DT_VCENTER = &H4
Const privada DT_SINGLELINE = &H20
Const privada TRANSPARENT = 1
Función de declaración privada SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Función de declaración privada GetDC Lib " user32" (ByVal hwnd As Long) Mientras
Función de declaración privada CreateSolidBrush Lib "gdi32" (ByVal crColorAs Long) Mientras
Función de declaración privada DeleteObject Lib "gdi32" (ByVal hObject As Long ) As Long
Función de declaración privada SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Función de declaración privada SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
Función de declaración privada SetBkColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
Función de declaración privada SetTextColor Lib "gdi32" (ByVal hdc Mientras, ByVal crColor Mientras)
Función de declaración privada FillRect Lib "user32" (ByVal hdc Mientras, lpRect Como RECT, ByVal hBrush Mientras)
Función de declaración privada DrawText Lib "user32" (ByVal hdc siempre, lpRect como RECT, ByVal hBrush mientras) siempre
Función de declaración privada Alias "Dr
awTextA" (ByVal hdc mientras, ByVal lpStr como cadena, ByVal nCount mientras, lpRect como RECT, ByVal wFormat mientras) Mientras
Sub lista privada1_ Click()
Dim Lrect como RECT, LhDc como largo, hBrush como largo
Dim Ret como largo, lpStr como cadena
lpStr = List1.List(List1.ListIndex) ' List1.Text
Ret = EnviarMensaje(List1.hwnd, LB_GETITEMRECT, List1.ListIndex, Lrect)
LhDc = GetDC(List1.
Ret = FillRect( LhDc, Lrect, hBrush)
Ret = DeleteObject(hBrush)
Ret = SetBkMode(LhDc, TRANSPARENT)
Ret = SetTextColor(LhDc, RGB(255, 0. 0)) 'Color de fuente de entrada seleccionada, 0)) 'Color de fuente de entrada seleccionada
Ret = DrawText(LhDc, lpStr, Len(lpStr), Lrect, DT_SINGLELINE o DT_LEFT o DT_VCENTER)
End Sub
Subcomando privado1_ Click()
Atenuar i como entero
Para i = 0 a List1.ListCount - 1
Si InStr(1, List1.List(i), Text1) <> 0 Luego List1.True
Siguiente i
Fin Sub