Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запретить DrawFocusRect. при отрисовке строк Listbox [D7, WinXP]


Maksim V. ©   (2009-11-01 23:58:00) 

Здравствуйте. Необходимо запретить отрисовку рамки у выделенных элементов ListBox когда его окно сфокусировано. Вполне вероятно данная рамка рисуется через DrawFocusRect. если в родительском окне возвращать 0 в WM_DRAWITEM, можно убрать рамку. Интересует способ удаления этой рамки когда используется сабклассинг только самого элемента управления и WM_DRAWITEM в родительском окне не меняется. Спасибо.


Leonid Troyanovsky   (2009-11-02 10:18:00) [1]


> Maksim V.   (01.11.09 23:58)  

> Здравствуйте. Необходимо запретить отрисовку рамки у выделенных
> элементов ListBox когда его окно сфокусировано


procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
 Rect: TRect; State: TOwnerDrawState);
begin
 with (Control as TListBox), Canvas do
   begin
     FillRect(Rect);
     TextOut(Rect.Left, Rect.Top, Items[Index]);
     if odFocused in State then
       DrawFocusRect(Rect);
   end;
end;

Только, нехорошо это, прятать фокус.

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо