2012-07-24 5 views
0

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; 
} 

감사합니다. 모든 도움을 많이 받았습니다. :)

실제 이미지가 손상 될 수 있습니까? 나는 그것에 대해 몇 곳에서 읽었습니다. 내 운이 좋을 지 모르겠다. 아무 것도하지 않는다. :)

+0

아마도 그것은 당신의 이미지 목록은 'ILC_COLOR16'을 사용하므로 16 비트 DIB 픽셀이지만'LoadImage'를 호출 한 후의 비트 맵은 호환 가능한 비트 맵, 즉 현재 디스플레이 설정과 일치합니다. 따라서 둘이 같지 않으면 추가가 실패 할 수 있습니다. 당신은'ILC_COLORDDB'를 사용하거나 당신의 비트 맵 형식이 이미지 목록과 일치하는지 확인하고'LoadImage' 호출에서'LR_CREATEDIBSECTION'을 사용할 수 있습니다. – tinman

+0

다른 비트 맵을로드하고 코드가 작동하는지 확인하십시오. :-) – Xearinox

+0

그래, 난 그냥 간단한 이름으로 뭔가를 시도 할거야 또는 무언가 _ 문제가 발생 incase 오늘 모든 기회를 주셔서 감사합니다 : P – andrewktmeikle

답변

0

나 자신과 창문에 대해 논쟁을 벌인 끝에 왜 추가 기능이 작동하지 않는지 알 수 없었다.

imagelist를 사용하는 대신 각 이미지를 한 번에 하나씩로드하면됩니다. 이미지 목록을 사용하는 것이 왜 더 좋았는지 확실하지 않은 이유는 무엇입니까?

내가 만든 드롭 다운 메뉴에 이미지를로드하려고했으나 더 나은 방법을 찾았습니다. 어느 것이 MENUITEMINFO 구조체를 사용하고 MIIM_BITMAP | 내가 이미지와

은 또한 0 이미지 이름은 어떻게 든 밑줄 쉽게 창 어쨌든 롤

을 찾을 수 있습니다 각 메뉴 항목 :)의 텍스트를 가질 수 의미 fMask에 두 플래그 :로 MIIM_STRING, 이것은 누군가를 도왔 으면 좋겠 :

관련 문제