Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Добавление собственной отрисовки, CListCtrView 
:(
    Опции темы
xTr1m
Дата 9.8.2006, 21:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

Репутация: нет
Всего: 1



Вот у меня есть вопрос. Предположим я хочу, чтобы отрисовка вида проходила стандартная, но если пользователь выделяет строчку, то выделение я сам хочу сделать (свое). Если какаой-нибудь механизм, позволяющий примерно следующее
Код

void CXXXView::OnPaint()
{
//////////////////////////
сделать стандартную отрисовку
/////////////////////////

if(flag&TVIS_SELECT)
//////////////
моя отрисовка
//////////////
}
 
Или же необходимо рисовать весь вид самому?
PM MAIL WWW ICQ   Вверх
Earnest
Дата 10.8.2006, 06:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Если CListCtrlView - это LISTVIEW, то с помощью CUSTOMDRAW. Только это не в OnPaint делается, а в обработчике WM_NOTIFY - NM_CUSTOMDRAW. Набери в MSDN NM_CUSTOMDRAW и почитай про ListView.


--------------------
...
PM   Вверх
Coocky
Дата 11.8.2006, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Да можно и проще все. Воспользуйся поиском. Давным давно я прикреплял файл с перерисованым ListCtrl  через DrawItem() -там есть пояснения/
тебе лишь нужно будет определить флаг выделения, и закрасить итем нужным цветом..
Цитата(Earnest @  10.8.2006,  06:10 Найти цитируемый пост)
NM_CUSTOMDRAW

Для него это будет сложно.. Для его ситуации подйдет и DrawItem smile 



--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
Earnest
Дата 11.8.2006, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Ну конечно, гораздо проще написать всю прорисовку, чем просто поменять цвет или кисть. smile 
CUSTOMDRAW Только с первого взгляда страшный, а на деле - работы гораздо меньше, чем при OWNERDRAW.


--------------------
...
PM   Вверх
Coocky
Дата 11.8.2006, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


GUI гуру
****


Профиль
Группа: Участник Клуба
Сообщений: 2879
Регистрация: 16.2.2004
Где: Украина. Запорожь е

Репутация: 25
Всего: 62



Цитата(Earnest @  11.8.2006,  15:35 Найти цитируемый пост)
CUSTOMDRAW Только с первого взгляда страшный, а на деле - работы гораздо меньше, чем при OWNERDRAW. 

Конечно, конечно... smile 
Да запарится он с возвращаемыми флагами! Там же можно делать почти все. от строки, тескта, линий, до бекграунда и т.д.
Ему (для перерисовки строки с выделением) с головой хватит  DrawItem smile 
Там же все готово в параметрах , которая функция принимает и DC  и размер прямоугольника, номер строки и флаг состояния smile 
А в CUSTOMDRAW надо все самому, причем с двойной буфферизацией, с умением работать с графикой.
А судя по
Код

void CXXXView::OnPaint()
{
//////////////////////////
сделать стандартную отрисовку
/////////////////////////

if(flag&TVIS_SELECT)
//////////////
моя отрисовка
//////////////
}



сразу не получится smile 


--------------------
Верю в смерть после жизни, в любовь после секса ,в крем после бритья smile        
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0631 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.