![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Запретить 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.