CreateDragImage и Windows XP
От: ZiLM  
Дата: 02.08.02 18:59
Оценка:
В WIndows XP функция CListCtrl::CreateDragImage если у элемента иконка с альфа-каналом, создает ImageList только с инконкой, без текста...Кто-нибудь сталкивался с этой проблемой. Есть ли решение?
Re: CreateDragImage и Windows XP
От: PSP Беларусь  
Дата: 05.08.02 06:54
Оценка:
Здравствуйте ZiLM, Вы писали:

ZLM>В WIndows XP функция CListCtrl::CreateDragImage если у элемента иконка с альфа-каналом, создает ImageList только с инконкой, без текста...Кто-нибудь сталкивался с этой проблемой. Есть ли решение?


А как этоты ещё и текст решил прикрутить?

И в принципе можешь сам создавать этот imagelist.
Всегда Ваш, PSP.
Re: CreateDragImage и Windows XP
От: Михаил А. Русаков https://www.wincatalog.com
Дата: 19.08.03 14:13
Оценка:
Здравствуйте, ZiLM, Вы писали:

ZLM>В WIndows XP функция CListCtrl::CreateDragImage если у элемента иконка с альфа-каналом, создает ImageList только с инконкой, без текста...Кто-нибудь сталкивался с этой проблемой.

Ага, я только что столкнулся. Однако, такой закономерности я не уловил, ибо у меня иногда и на иконках с альфаканалом добавляется текст (на больших 32х32, но не на всех). Хотя без альфаканала текст есть всегда...

ZLM>Есть ли решение?

Я бьюсь уже третий день. Вот набрел на твой пост. Если ты это как-то решил, не мог бы ты запостить сюда или приватом? Заранее благодарен...

PS: А насчет создания самому: какие параметры должны быть при создании ImageList'а, а то у меня получается черный прямоугольник... Я перепробовал все ILC_COLOR*
WinCatalog — Disk Catalog Software for Windows
Re[2]: CreateDragImage и Windows XP
От: Михаил А. Русаков https://www.wincatalog.com
Дата: 21.08.03 06:42
Оценка:
Попробовал разные варианты, в том числе и google search. Ответ отрицательный. Самое лучщее, что я смог надыбать -- это то, что у одного товарища текст не отрисовывался вообще. Помогла замена шрифта с Ариала на 8 point MS Sans Serif. Ему это помогло. Мне нет.

Идеи есть -- попробую.
WinCatalog — Disk Catalog Software for Windows
Re[3]: CreateDragImage и Windows XP
От: Андрей Россия  
Дата: 21.08.03 06:44
Оценка:
Здравствуйте, Михаил А. Русаков, Вы писали:

МАР>Идеи есть -- попробую.


Если решишь — дай знать
У меня тоже подобные проблемы, но заниматься этим некогда
Re[4]: CreateDragImage и Windows XP
От: Михаил А. Русаков https://www.wincatalog.com
Дата: 21.08.03 08:07
Оценка: 14 (3)
Андрей, привет:

А>Если решишь — дай знать

Ура, я его победил!..

Короче, делается это так: берется пример от г-на Фрэнка Кобса (Frank Kobs) и в функции CreateDragImageEx() заменяются строки:


    pos = GetFirstSelectedItemPosition();
    while (pos)
    {
        nIdx = GetNextSelectedItem( pos );
        GetItemRect( nIdx, cSingleRect, LVIR_BOUNDS );

        pSingleImageList = CreateDragImage( nIdx, &cPt);
        if (pSingleImageList)
        {
            pSingleImageList->DrawIndirect( &cMemDC, 
                            0, 
                            CPoint( cSingleRect.left-cCompleteRect.left, 
                            cSingleRect.top-cCompleteRect.top ),
                            cSingleRect.Size(), 
                            CPoint(0,0));
            delete pSingleImageList;
        }
    }

на
    pos = GetListCtrl().GetFirstSelectedItemPosition();
    while (pos)
    {
        nIdx = GetListCtrl().GetNextSelectedItem( pos );
        GetListCtrl().GetItemRect( nIdx, cSingleRect, LVIR_BOUNDS );

        cMemDC.BitBlt(cSingleRect.left-cCompleteRect.left, cSingleRect.top-cCompleteRect.top, cSingleRect.Width(),
            cSingleRect.Height(), &cDc, cSingleRect.left, cSingleRect.top, SRCCOPY);
    }


Там еще ругнется на то, что переменная pSingleImageList объявлена, но не юзается -- ее тоже убрать.

Получается весьма прикольно, особенно когда стиль LVS_REPORT...

PS: поставьте оценочку...
WinCatalog — Disk Catalog Software for Windows
Re[5]: CreateDragImage и Windows XP
От: Михаил А. Русаков https://www.wincatalog.com
Дата: 21.08.03 08:09
Оценка:
GetListCtrl() там стоит потому что я это делаю в ListView, а не в LictCtrl, как в изначальном примере...
WinCatalog — Disk Catalog Software for Windows
Re[5]: CreateDragImage и Windows XP
От: Андрей Россия  
Дата: 21.08.03 08:23
Оценка:
Здравствуйте, Михаил А. Русаков, Вы писали:

МАР>Андрей, привет:


А>>Если решишь — дай знать

МАР>Ура, я его победил!..

skip

Спасибо!
Я, правда, юзаю это дело в CTreeCtrl, там своя специфика. Но общая идея понятна и даже работает с минимальными переделками.

ЗЫ Оценочку поставил
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.