В приложении необходимо использовать Listbox с цветами, отличными от стандартных.
Для указанных целей используется обработка сообщения WM_CTLCOLORLISTBOX стандартным образом.
case WM_CTLCOLORLISTBOX:
if ((HWND)lParam==hList) {
SetTextColor((HDC)wParam,RGB(255,255,255));
SetBkColor((HDC)wParam,RGB(0,0,0));
return (LRESULT)hBrush;
}
Сам Listbox создается следующим образом
hList=CreateWindow(TEXT("listbox"),NULL,WS_CHILD | WS_VISIBLE | WS_BORDER |
LBS_NOTIFY,20,30,150,200,hWnd,(HMENU)0,g_hInst,NULL);
Если главное окно приложения создано с помощью функции CreateWindow(), то раскрашенный Listbox отображается как нужно
Однако, приложение сделано на основе диалога, Listbox выглядит не надлежащим образом: фон, незанятый итемами, не закрашивается нужным цветом
Как решить такую проблему?
MinimalWindowProgram.ZIP
MinimalDlgProgramCPPPPC.zip
Здравствуйте, Nokin, Вы писали:
N>В приложении необходимо использовать Listbox с цветами, отличными от стандартных.
N>Для указанных целей используется обработка сообщения WM_CTLCOLORLISTBOX стандартным образом.
N>N> case WM_CTLCOLORLISTBOX:
N> if ((HWND)lParam==hList) {
N> SetTextColor((HDC)wParam,RGB(255,255,255));
N> SetBkColor((HDC)wParam,RGB(0,0,0));
N> return (LRESULT)hBrush;
N> }
N>
N>Сам Listbox создается следующим образом
N>N>hList=CreateWindow(TEXT("listbox"),NULL,WS_CHILD | WS_VISIBLE | WS_BORDER |
N> LBS_NOTIFY,20,30,150,200,hWnd,(HMENU)0,g_hInst,NULL);
N>
N>Если главное окно приложения создано с помощью функции CreateWindow(), то раскрашенный Listbox отображается как нужно
N>
N>Однако, приложение сделано на основе диалога, Listbox выглядит не надлежащим образом: фон, незанятый итемами, не закрашивается нужным цветом
N>
N>Как решить такую проблему?
N>MinimalWindowProgram.ZIP
N>MinimalDlgProgramCPPPPC.zip
В WM_ERASEBKGND закрасить нужным цветом
N>Однако, приложение сделано на основе диалога, Listbox выглядит не надлежащим образом: фон, незанятый итемами, не закрашивается нужным цветом
Что интересно, если тот же самый проект собрать под Win32, все выглядит как надо.
Так что получается, что проблема в реализации CE?
Код здесь
MinimalDlgProgramCPPWin32.zip