Red de conocimiento informático - Problemas con los teléfonos móviles - Encontrar problemas con LISTBOX en VB6.0

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