Установка Programatically PNG к Управлению Изображением в API Win32

Я не знаю vb.net, таким образом, я сделал это в C#

m_equipmentList.Sort(
   (payItem1,payItem2)=>payItem1.ResourceID.CompareTo(payItem2.ResourceID));

, и использование отражателя перевело его в vb.net, надеются, что это помогает

m_equipmentList.Sort(
Function (ByVal payItem1 As Schedule_Payitem, ByVal payItem2 As Schedule_Payitem) 
    Return payItem1.ResourceID.CompareTo(payItem2.ResourceID)
End Function)

, или можно наследовать Schedule_Payitem от IComparable и реализовать CompareTo и затем просто звонить m_equipmentList.Sort()

6
задан Jon Seigel 5 March 2010 в 18:47
поделиться

4 ответа

Это работает с использованием GDI + и класса битовой карты :

Bitmap oBmp(L"D:\\test.png");
HBITMAP hBmp;
oBmp.GetHBITMAP(0, &hBmp);
SendMessage(item,STM_SETIMAGE,IMAGE_BITMAP,(LPARAM)hBmp);

Некоторые предостережения. Вашему элементу управления нужен стиль SS_BITMAP. Не забудьте включить gdiplus.h и его библиотеку. Вам необходимо инициализировать (GdiplusStartup) и выключить GDI +. Вы освобождаете все системные ресурсы.

4
ответ дан 17 December 2019 в 04:48
поделиться

Лично я использую класс CPictureEx . Я думаю, что он не поддерживает png, но поддерживает bmp, jpeg и анимированный gif.

Я также использую графику Cairo для специального рендеринга. Каир поддерживает формат png.
Конечно, Каир немного сложнее использовать.

0
ответ дан 17 December 2019 в 04:48
поделиться

Я не думаю, что LoadBitmap или любая другая простая функция GDI (например, LoadImage ) загрузит PNG.

Вы можете сохранить ваш ресурс в 32-битный BMP с помощью инструмента редактирования изображений, а затем используйте LoadImage с LR_CREATEDIBSECTION .

Или вы можете использовать библиотеку, которая загрузит файл PNG в DIBSECTION . GDI + загрузит PNG и JPG в дополнение к BMP.

Библиотеки автоматизации OLE также имеют интерфейс IPicture, который вы можете создать с различными типами изображений, а затем получить базовый DIBSECTION. Его неудобно использовать, особенно если вы не знакомы с COM. См. OleLoadPicture для начальной точки.

1
ответ дан 17 December 2019 в 04:48
поделиться

Вы проверяли библиотеку DevIL / OpenIL? Он следует стилю именования функций OpenGL и написан на старом добром C.

, который я успешно использовал в прошлом. Это также очень портативно.

Проверьте это здесь: http://openil.sourceforge.net/features.php

0
ответ дан 17 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: