2015-03-16 10 views
2

Я не знаю, как установить ListBox цвет фона, а не только один элемент.Как установить цвет фона списка

g_hChatEdit(listbox)

Код:

case WM_MEASUREITEM: 
    if ((UINT)wParam == IDE_CHATEDIT) { 
     LPMEASUREITEMSTRUCT lpmis = (LPMEASUREITEMSTRUCT)lParam; 
     lpmis->itemHeight = 22; 
     HBRUSH hbr = CreateSolidBrush(bkgrgb); 
     SetWindowLong(g_hChatEdit, GCL_HBRBACKGROUND, (LONG)hbr); 
     //BeginPaint(g_hChatEdit, &ps); 
     hdc=GetDC(g_hChatEdit); 
     RECT rc; 
     GetClientRect(g_hChatEdit, &rc); 
     FillRect(hdc, &rc, hbr); 
     InvalidateRect(g_hChatEdit, 0, true); 
     UpdateWindow(g_hChatEdit); 
     return true; 
    } 
    break; 

ListBox цвет фона все еще белый

ответ

1

Посмотрите, работает ли этот. Обратите внимание, что hbrBkgnd не должна быть временной переменной.

HBRUSH hbrBkgnd = NULL; 

     case WM_CTLCOLORLISTBOX: //or WM_CTLCOLORSTATIC 
     if ((UINT)lParam == g_hChatEdit) 
     { 
      HDC hdcStatic = (HDC)wParam; 
      SetTextColor(hdcStatic, RGB(255,255,255)); 
      SetBkColor(hdcStatic, RGB(0,128,0)); 
      if (hbrBkgnd == NULL) 
       hbrBkgnd = CreateSolidBrush(RGB(200,200,255)); 
      return (INT_PTR)hbrBkgnd; 
     } 
Смежные вопросы