Изменение цвета элемента редактирования в WInCE (win32) - PullRequest
0 голосов
/ 11 ноября 2010

Я создал элемент управления для редактирования с ES_PASSWORD.Я хочу изменить цвет моего статического поля на серый.

case WM_CTLCOLOREDIT:
{
    HDC  hdc  = (HDC)  wParam ;             
    SetBkMode( hdc, RGB(65, 65, 65));
    return (LRESULT)GetStockObject(NULL_BRUSH);            
 }

Но все же с помощью элемента управления редактирования используется белый цвет: (

Пожалуйста, помогите мне. Если имеется более одного элемента управления для редактированияЕсть ли ч

1 Ответ

0 голосов
/ 01 декабря 2010

Ваш обработчик сообщений должен выглядеть так:

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{

  switch (message) 
  {

      case WM_CTLCOLOREDIT:
      {
          HBRUSH hBrush = CreateSolidBrush(RGB(255,0,0));
          ::SelectObject((HDC)wParam, (HGDIOBJ)hBrush);
          break;
      }
      default:
          return DefWindowProc(hWnd, message, wParam, lParam);
  }

  return 0;
}

Убедитесь, что вы не вызываете DefWindowProc, который победит переопределение.

...