| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Отрисовка фокуса в listView |
| Автор: Aleksandor 18.10.2006, 09:01 |
| какая процедура в недрах виндовз рисует выбранные элементы листвью? и как бы ее перехватить? лист виртуальный - OnGetDispInfo не подходит так как позволяет только указать индекс в image list, но выбранное изображение все равно рисуется с синим оверлеем и штриховой линией по краям Custom Draw не работает с иконками. Если перехватить WM_LBUTTONDOWN то теряется фокус ввода. Реально работает только ListView_SetExtendedListViewStyle(hwndListView,LVS_EX_BORDERSELECT) - border selection style instead of highlight, но все равно это не совсем то что нужно |
| Автор: Earnest 20.10.2006, 17:37 |
| Чтобы полностью кастомизировать рисование, поможет только OwnerDraw. Но все самому рисовать придется + перестанут работать стандартные тултипы (т.е. показ строк, которые не влезли целиком). Можно еще попробовать через CustomDraw: перед выводом выбранного итема установить нужные параметры рисования - это если тебе только цвета или фонт поменять нужно. |
| Автор: Aleksandor 20.10.2006, 20:19 |
| Owner draw ведь не работает с иконками? кажись придется в common control dll ку внедряться owner draw попробовал с другим листом, в report view. в контроле стоит стиль подчеркивания, так он пытается даже в owner draw сам подчеркивать ! кстати интересно как там рисовать в столбцах, все на одной строке? когда header двигаю он сам текст сохраняет? |
| Автор: Gwendolen 21.10.2006, 05:50 | ||
Win32 Programmer's Referense:
Т.е. стандартные функции рисования. Рисуй в выбранной строке любые картинки. |