|
다음의 소스를 실행해보면,
ShowMessage로 나오는 메시지박스에 숫자 0이 표시됩니다.
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TSHFileInfo aSHFi;
TImageList* ilSmall = new TImageList(this);
ilSmall->ShareImages = true;
ilSmall->Handle = SHGetFileInfo("*.*",0,&aSHFi,sizeof(aSHFi),SHGFI_ATTRIBUTES | SHGFI_DISPLAYNAME | SHGFI_SYSICONINDEX | SHGFI_SMALLICON);
ListView1->SmallImages = ilSmall;
TImageList* ilLarge = new TImageList(this);
ilLarge->ShareImages = true;
ilLarge->Handle = SHGetFileInfo("*.*",0,&aSHFi,sizeof(aSHFi),SHGFI_ATTRIBUTES | SHGFI_DISPLAYNAME | SHGFI_SYSICONINDEX | SHGFI_LARGEICON);
ListView1->LargeImages = ilLarge;
ShowMessage(IntToStr(ListView1->SmallImages->Count));
}
이 코드의 의도는 ListView1->SmallImages에 시스템의 파일아이콘들의 이미지리스트를 할당하는 것입니다.
그런데 뭔가 문제가 있었는지, 메시지박스에는
0 이라고 나옵니다.즉, 그 이미지리스트에 들어있는 이미지 개수는 0 개인 것입니다.
어디서 잘못된 거죠?
|