ListView ImageList 관련 질문입니다.
HICON 여러개를 HBITMAP에 일렬로 직접 그려서
ListView의 ImageList에 로드한뒤에 ListView Item에 이미지를 보여주려고합니다.
근데 이미지가 계속 검정색으로만 보이네요
아래는 제 코드입니다.
// 경로에 해당하는 파일 컨텐츠들을 가져온다.
vector<pair<CString,HICON>> vContents = GetFolderContents(path);
if (!vContents.emprt())
ListView_DeleteAllItems(m_hListView);
HDC hDC = CreateCompatibleDC(NULL);
UINT cx = vContents.size() * 32;
UINT cy = 32;
HBITMAP hBitmap = CreateBitmap(cx, cy, 1, GetDeviceCaps(hDC, BITSPIXEL), NULL);
HBITMAP hOldBitmap = (HBITMAP)SelectObject(hDC, hBitmap);
// HBITMAP에 아이콘들을 그린다.
int x = 0;
for (int i = 0; i < vContents.size(); i++)
{
DrawIconEx(hDC, x, 0, vContetns[i].second, 32, 32, 0, NULL, DI_NORMAL);
x += 32;
}
// HBITMAP을 HIMAGELIST로 등록
m_hImgLargeList = ImageList_Create(32, 32, ILC_COLOR32, 0, 1);
ImageList_Add(m_hImgLargeList, hBitmap, NULL);
SendMessage(m_hListView, LVM_SETIMAGELIST, (WPARAM)LVSIL_NORMAL, (LPARAM)m_hImgLargeList);
// ListView Item 추가.
for (int i = 0; i < vContents.size(); i++)
{
CString fileName = vContents[i].first;
LVITEM LI;
LI.iImage = i;
LI.iSubItem = 0;
LI.iITem = i;
Li.pszText = (LPWSTRE)(LPCTSTR)fileName;
SendMessage(m_hListView, LVM_INSERTITEM, 0, (LPARAM)&LI);
}
읽어주셔서 감사합니다.
댓글 달기