Изображения в ListControl не очищаются в приложении MFC SDI

Я работаю над одним MFC/SDI проект, где я использую CListView как вид по умолчанию.

Но дело в том, что я подал заявку ImageList к CListCtrl
но эти изображения не отображаются четко.
Как показано на рисунке ниже.

Это снимок моего вывода

Ниже приведен код для создания нового списка изображений.

Создание ImageList где m_ImgList является членом CImageList,

if(m_ImgList->m_hImageList == NULL || m_ImgList->DeleteImageList() == TRUE)
{
m_ImgList->Create(16,16, ILC_COLOR,0, 1);
}

Затем я создаю изображения, используя данные BLOB из базы данных.
Вот, pByte является BYTE* держать BLOB Данные.

HGLOBAL hGlobal = ::GlobalAlloc(GMEM_MOVEABLE, nbytes+5);
LPVOID pV = GlobalLock(hGlobal);
memcpy(pV, pByte, nbytes);
GlobalUnlock(hGlobal);
LPSTREAM pstm = NULL;
HRESULT hr = CreateStreamOnHGlobal(hGlobal, TRUE, &pstm);
CImage image;
image.Load(pstm);

if (image == NULL)
{
image.Load(NILIMAGE);
}

CPaintDC dc(this);
CDC pMDC;

pMDC.CreateCompatibleDC(&dc);
CBitmap pb;
pb.CreateCompatibleBitmap(&dc, iNewWidth, iNewHeight);
CBitmap *pob = (CBitmap*)pMDC.SelectObject(&pb);
image.StretchBlt(pMDC.m_hDC,0, 0, iNewWidth, iNewHeight,
0, 0, image.GetWidth(), image.GetHeight(), SRCCOPY);
pMDC.SelectObject(pob);

Adding images to the image list

if((m_ImgList->Add(&pb, RGB(0,0,0)))== -1)
{
_T("undone");
}
if(hGlobal != NULL)
::GlobalFree(hGlobal);

Может кто-нибудь сказать мне, как я могу это сделать?
Заранее спасибо.
и извините за плохой английский.

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector