Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.02.2017, 15:10   #1
Alexan-Dwer
Форумчанин
 
Аватар для Alexan-Dwer
 
Регистрация: 20.04.2009
Сообщений: 136
Вопрос ListView - неправильно рисуется выбранная ячейка

Если использовать стандартную процедуру обработки вывода ListView, то выделенная ячейка выглядит так:



Но, если я сам обрабатываю NM_CUSTOMDRAW и в CDDS_SUBITEM || CDDS_ITEMPREPAINT меняю clrTextBk, это выглядит так:



Код:
//
if pnm^.code = NM_CUSTOMDRAW then
//
if not TblListViewFieldIsCreate then
begin
//
LPNMLVCD:=LPNMLVCUSTOMDRAW(lPrm);

//
  case LPNMLVCD^.nmcd.dwDrawStage of
...

//
CDDS_SUBITEM or CDDS_ITEMPREPAINT:
    begin
//
if ListViewItemSel = LPNMLVCD^.nmcd.dwItemSpec then
      begin
//
if LPNMLVCD^.iSubItem = ListViewSubItemSel then
        begin
//
LPNMLVCD^.clrText:=GetSysColor(COLOR_HIGHLIGHTTEXT);

//
LPNMLVCD^.clrTextBk:=GetSysColor(COLOR_HIGHLIGHT);
        end
//
else
        begin
//
LPNMLVCD^.clrText:=0;
//
LPNMLVCD^.clrTextBk:=$d8e9ec;
        end;

//
Result:=CDRF_NEWFONT;

//
Exit;
      end;
    end; 
  end;
end;
Как можно получить такой же результат фоновой заливки, как у стандартной функции обработки?
Alexan-Dwer вне форума Ответить с цитированием
Старый 02.02.2017, 15:33   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Я бы посмотрел в сторону rc поля.
waleri вне форума Ответить с цитированием
Старый 02.02.2017, 16:03   #3
Alexan-Dwer
Форумчанин
 
Аватар для Alexan-Dwer
 
Регистрация: 20.04.2009
Сообщений: 136
По умолчанию

waleri, спасибо. Пробовал я его в CDDS_SUBITEM || CDDS_ITEMPREPAINT редактировать, менял как LPNMLVCD^.nmcd.rc.Right:=LPNMLVCD^. nmcd.rc.Right - 20, но это ничего не даёт

Последний раз редактировалось Alexan-Dwer; 02.02.2017 в 16:11.
Alexan-Dwer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не рисуется график Nickolay0512 C# (си шарп) 4 03.12.2014 11:10
Неправильно работает Pager в ListView Ate1st ASP.NET 1 04.06.2014 11:12
Не рисуется битмап Jugger Win Api 2 03.04.2012 15:15
Неправильно рисуется график Gamst Общие вопросы Delphi 0 02.02.2012 20:49
Ячейка с текстом, ячейка без текста. segail Microsoft Office Excel 5 16.09.2009 21:55