win32: отобразить поле редактирования с черным цветом в текстовой области на Windows Mobile 5 - PullRequest
0 голосов
/ 01 декабря 2010

Я пишу простое приложение пользовательского интерфейса на Windows Mobile 5, я хочу, чтобы отобразить окно редактирования для пользователя с задним цветом в целом поле редактирования, но я не добился никакого подхода ........ всякий раз, когда я ловлю оконное событие для управления редактированием и вызываю setBkColor (), оно будет отображать только текстовую область с заданным цветом, а не все поле редактирования.

Я хочу, чтобы данный цвет отображался пользователю, когда окно представлено пользователю, а не когда пользователь вводит данные в поле редактирования.

Пожалуйста, дайте мне знать решение, снова его родной код приложения win32, а не MFC

regds Сухайль

1 Ответ

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

SetBkColor только устанавливает цвет фона для текста.Чтобы изменить фон всего элемента управления, вам нужно обработать сообщение WM_CTLCOLOREDIT и вернуть кисть по вашему выбору.Вы можете сделать это в вашем WndProc следующим образом: (при условии, что hEdit является дескриптором вашего элемента управления редактированием)

case WM_CTLCOLOREDIT:
  if ((HWND)lParam == hEdit) {
    HDC hDC = (HDC)wParam;
    SetBkMode(hDC, TRANSPARENT);
    return (LRESULT)GetStockObject(BLACK_BRUSH); // or any other brush you want
  }
  break;

Установив прозрачный фоновый режим, вам не требуется отдельный1010 * call - текст будет прозрачно закрашен поверх фона.

...