Цветные строки в combobox - VB

Узнай цену своей работы

Формулировка задачи:

Возможно ли сделать в combobox строки цветными ? Мне нужно выделить те, элементы которые недоступны для выбора. Как в менюхе, серым цветом. Может есть какой то другой способ ?

Решение задачи: «Цветные строки в combobox»

textual
Листинг программы
Private Function DrawItem(drw As DRAWITEMSTRUCT) As Boolean
    Dim obr As Long, opn As Long, l As Long, s As String
    obr = SelectObject(drw.hdc, GetStockObject(DC_BRUSH))
    opn = SelectObject(drw.hdc, GetStockObject(DC_PEN))
    If (drw.itemState And ODS_SELECTED) Then
        SetDCBrushColor drw.hdc, GetSysColor(COLOR_HIGHLIGHT)
        SetDCPenColor drw.hdc, GetSysColor(COLOR_HIGHLIGHT)
        Rectangle drw.hdc, drw.rcItem.Left, drw.rcItem.Top, drw.rcItem.Right, drw.rcItem.Bottom
        SetDCPenColor drw.hdc, GetSysColor(COLOR_HIGHLIGHTTEXT)
        SetTextColor drw.hdc, GetSysColor(COLOR_HIGHLIGHTTEXT)
    Else
        SetDCBrushColor drw.hdc, GetSysColor(COLOR_WINDOW)
        SetDCPenColor drw.hdc, GetSysColor(COLOR_WINDOW)
        Rectangle drw.hdc, drw.rcItem.Left, drw.rcItem.Top, drw.rcItem.Right, drw.rcItem.Bottom
        SetDCPenColor drw.hdc, GetSysColor(COLOR_WINDOWTEXT)
        SetTextColor drw.hdc, drw.itemData ' GetSysColor(COLOR_WINDOWTEXT)
    End If
    SetBkMode drw.hdc, TRANSPARENT
    If drw.itemID >= 0 Then
        'SetDCBrushColor drw.hdc, drw.itemData
        'Rectangle drw.hdc, drw.rcItem.Left + 3, drw.rcItem.Top + 3, drw.rcItem.Left + 70, drw.rcItem.Bottom - 3
        l = SendMessage(drw.hwndItem, CB_GETLBTEXTLEN, drw.itemID, ByVal 0)
        If l Then
            s = Space(l + 1)
            l = SendMessage(drw.hwndItem, CB_GETLBTEXT, drw.itemID, ByVal s)
            s = Left(s, l)
            drw.rcItem.Left = drw.rcItem.Left + 2 ' 78
        End If
    Else
        drw.rcItem.Left = drw.rcItem.Left + 2
        s = "None"
    End If
    DrawText drw.hdc, ByVal s, Len(s), drw.rcItem, DT_VCENTER Or DT_SINGLELINE
    SelectObject drw.hdc, obr
    SelectObject drw.hdc, opn
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.2 из 5