Re[3]: Закраска Image Control
От: IDr Россия  
Дата: 12.11.07 06:46
Оценка:
Здравствуйте, SurvivorPhantom, Вы писали:

SP>Как бы Вы меняли цвет этого контрола?


Я бы для этого контрола написал примерно следующее:

   if (uMsg==WM_DRAWITEM && wParam==IDC_COLOR_DISPLAY)
   {
      LPDRAWITEMSTRUCT pdis=(LPDRAWITEMSTRUCT)lParam;
      if (pdis->itemAction==ODA_DRAWENTIRE)
      {
         // для иллюстрации это здесь, а вообще кисть надо бы создавать один раз (например при создании диалога)
         HBRUSH hbr=CreateSolidBrush(RGB(255,0,0));

         FillRect(lpDrawItemStruct->hDC,&lpDrawItemStruct->rcItem,hbr);
         return TRUE;
      }
      return 0; //в случае если дело происходит в диалоге, иначе - вызов DefWindowProc
   }


SP> ...разве это не перекрывает друг друга?


нет, не перекрывает: SetBkColor — устанавливает цвет фона текста, а возвращение кисти из WM_CTLCOLOR-сообщений — устанавливает фоновый цвет всего контрола, чтобы увидеть разницу поэкспериментируйте на простом Static-контроле.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.