我很困惑,因为我无法确定 ImageList_Add 调用失败的原因。我知道这一定是我对图像做错了,或者我说错了,但我不知道如何修复它:S 您能提供的任何帮助将不胜感激!:)
我正在使用的代码如下。我在控制台上得到输出,说它无法添加到图像列表中。从文档中,ImageList_Add 将返回图像列表中它设法添加图像的位置的索引,因此如果不能,则返回 -1。
这一切都很好,但我找不到任何地方为什么/是什么导致添加失败!
该代码可能存在内存泄漏,尽管目前,我花了将近一天的时间试图找出与此相关的各种问题,所以我只想让它工作!
HIMAGELIST imageList = ImageList_Create(20,20,ILC_COLOR16,1,2 );
if (imageList == NULL)
{
printf("Error creating imagelist - dlg_create_dropdown_menu. Returning NULL\n");
return NULL;
}
HBITMAP currentImage = (HBITMAP) LoadImage(NULL,"active_mdoe_icn.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
if (currentImage == NULL)
{
if (GetLastError()== 2)
{
printf("File not found - dlg_create_dropdown_menu. Returning NULL.\n");
return NULL;
}
printf("Error loading image from file - dlg_create_dropdown_menu. Returning NULL.\n");
return NULL;
}
int imageIndex;
if ( (imageIndex = ImageList_Add(imageList,currentImage,NULL)) == -1 )
{
printf("Error adding to the image list - dlg_create_dropdown_menu. Returning NULL.\n");
return NULL;
}
谢谢大家,任何帮助将不胜感激!:)
这可能是实际图像损坏的问题吗?我在几个地方读到过这个。如果我不做任何愚蠢的事情,可能只是我的运气:)