List View Control с картинками
От: kostya82  
Дата: 21.06.04 08:33
Оценка:
Всем Привет!
Я использую List View Control со стилем report, у меня несколько колонок в некоторых из них в определенные моменты могут отображаться небольшие пиктограмки. Таким обазом, есть необходимость показывать/ скрывать картинки.
С добавлением все просто — ListView_SetItem отлично справляется с задачей. Как убрать картинку, я, к сожалению, не нашел. На настоящий момент просто устанавливаю пустую картинку (белый квадрат). Все бы хорошо, но по картинке не рисуется выделение — (т.е в выделеной строке есть пустой белый квадрат).

Мот кто знает, как это граматно сделать?
Спасибо!

Костя.
Re: List View Control с картинками
От: rus blood Россия  
Дата: 21.06.04 08:35
Оценка: 2 (1)
Здравствуйте, kostya82, Вы писали:

K>Все бы хорошо, но по картинке не рисуется выделение — (т.е в выделеной строке есть пустой белый квадрат).


Нужно указать белый цвет, как цвет фона (прозрачный). Кажется image list умеет это делать...
Имею скафандр — готов путешествовать!
Re[2]: List View Control с картинками
От: kostya82  
Дата: 21.06.04 09:22
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Нужно указать белый цвет, как цвет фона (прозрачный). Кажется image list умеет это делать...


Спасибо за быстрый ответ, К сожалению, выделение по прежнему рисуется неправильно. Может я что не так делаю?


m_hZonesList = GetDlgItem(mWnd, IDC_ZONES_LIST);
    m_hImageList = ImageList_Create( 16, 16, ILC_COLOR, 1, 1 );
    ImageList_SetBkColor(m_hImageList, RGB(255,255,255));
    HBITMAP hBitmap = (HBITMAP)LoadImage(gHINSTANCE, MAKEINTRESOURCE(IDB_CALCREQ_ICO), IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT);
    ImageList_Add(m_hImageList, hBitmap, 0);
    DeleteObject(hBitmap);
    hBitmap = (HBITMAP)LoadImage(gHINSTANCE, MAKEINTRESOURCE(IDB_ENABLED_ICO), IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT);
    ImageList_Add(m_hImageList, hBitmap, 0);
    DeleteObject(hBitmap);
    hBitmap = (HBITMAP)LoadImage(gHINSTANCE, MAKEINTRESOURCE(IDB_WHITE_ICO), IMAGE_BITMAP, 0, 0, LR_LOADTRANSPARENT);
    ImageList_Add(m_hImageList, hBitmap, 0);
    DeleteObject(hBitmap);
    ListView_SetImageList(m_hZonesList, m_hImageList, LVSIL_SMALL);



Костя.
Re[3]: List View Control с картинками
От: Valerio Россия linkedin.com/in/boronin
Дата: 21.06.04 10:12
Оценка:
K>
K>m_hZonesList = GetDlgItem(mWnd, IDC_ZONES_LIST);
K>    m_hImageList = ImageList_Create( 16, 16, ILC_COLOR, 1, 1 );

K>    ImageList_SetBkColor(m_hImageList, RGB(255,255,255));
K>


try instead
m_hImageList.SetBkColor(m_hZonesList.GetBkColor());

?
... << Rsdn@Home 1.1.4 beta 1 >>
Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
Re[4]: List View Control с картинками
От: kostya82  
Дата: 21.06.04 10:41
Оценка:
Здравствуйте, Valerio, Вы писали:

K>>
K>>m_hZonesList = GetDlgItem(mWnd, IDC_ZONES_LIST);
K>>    m_hImageList = ImageList_Create( 16, 16, ILC_COLOR, 1, 1 );

V>K>    ImageList_SetBkColor(m_hImageList, RGB(255,255,255));
K>>


V>try instead

V>
V>m_hImageList.SetBkColor(m_hZonesList.GetBkColor());
V>

V>?

Попрбовал — тоже самое, ListView_GetBkColor(m_hZonesList) возвращает как раз таки RGB(255,255,255)
Может что-то не так с картинкой (у меня это просто белый квадрат), или может надо использовать маску (хотя я это уже пробовал — просто рисует маску белым и все!)

А возможно ли просто удалить картинку? Это бы решило проблемму.

Заранее благодарен,
Костя
Re[3]: List View Control с картинками
От: rus blood Россия  
Дата: 21.06.04 11:01
Оценка:
K>
..........
K>


Попробуй

ImageList_AddMasked
Имею скафандр — готов путешествовать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.