ImageReview_Add 호출이 실패한 이유를 확인할 수 없어 혼란 스럽습니다. 나는 그것이 내가 잘못하고있는 이미지인지, 아니면 내가 틀렸다고 말하고있는 것이 틀림 없음을 안다.하지만 어떻게 고칠 수 있을지 모르겠다 : S 당신이 제공 할 수있는 도움은 인정 될 것이다! :)HIMageList에 추가 할 수없는 이유를 알아낼 수 없습니다.
내가 사용하는 코드는 다음과 같습니다. 이미지 목록에 추가 할 수 없다는 내용의 콘솔 출력이 나타납니다. 문서에서 ImageList_Add는 imagelist에서 이미지를 추가 할 수있는 위치의 인덱스를 반환하므로 기울이지 않으면 -1이 반환됩니다.
어느 것이 좋고 좋지만 어디서나 찾을 수없는 이유는 무엇입니까?/무엇이 추가 실패의 원인입니까!
코드에 메모리 누수가있을 수 있지만, 현재 ive가이 문제에 대한 다양한 문제를 파악하려고 하루를 보냈으므로 제대로 작동하도록하려고합니다.
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;
}
감사합니다. 모든 도움을 많이 받았습니다. :)
실제 이미지가 손상 될 수 있습니까? 나는 그것에 대해 몇 곳에서 읽었습니다. 내 운이 좋을 지 모르겠다. 아무 것도하지 않는다. :)
아마도 그것은 당신의 이미지 목록은 'ILC_COLOR16'을 사용하므로 16 비트 DIB 픽셀이지만'LoadImage'를 호출 한 후의 비트 맵은 호환 가능한 비트 맵, 즉 현재 디스플레이 설정과 일치합니다. 따라서 둘이 같지 않으면 추가가 실패 할 수 있습니다. 당신은'ILC_COLORDDB'를 사용하거나 당신의 비트 맵 형식이 이미지 목록과 일치하는지 확인하고'LoadImage' 호출에서'LR_CREATEDIBSECTION'을 사용할 수 있습니다. – tinman
다른 비트 맵을로드하고 코드가 작동하는지 확인하십시오. :-) – Xearinox
그래, 난 그냥 간단한 이름으로 뭔가를 시도 할거야 또는 무언가 _ 문제가 발생 incase 오늘 모든 기회를 주셔서 감사합니다 : P – andrewktmeikle