본문으로 바로가기

시스템 아이콘 Merge 시켜 사용하기

category 개발언어/c++ 2016. 6. 13. 16:41

시스템 아이콘 Merge 시켜 사용하기

// hiFolder는 원본 아이콘
HICON GetLinkedIcon(HICON hiFolder)
{
//
리턴할 아이콘
HICON hiShared;
//
바로가기의 쪼그만 사각형에 화살표가 들은 아이콘을 저장할 핸들
HICON hiHand;

//
바로가기의 쪼그만 사각형 아이콘 핸들을 얻어온다.
ExtractIconEx("shell32.dll", 29, &hiHand, NULL, 1);

//
주어진 플래그대로 HIMAGELIST 를 만든다.
HIMAGELIST himl = ImageList_Create(32, 32, ILC_MASK, 1, 0);

//
아이콘의 Merge 처리를 위하여 이미지 리스트에 추가한다.
ImageList_AddIcon(himl, hiFolder);
ImageList_AddIcon(himl, hiHand);

//
두개의 아이콘을 Merge 시킨다.
HIMAGELIST himlNew = ImageList_Merge(himl, 0, himl, 1, 0, 0);

//
이미지 리스트에서 Merge된 아이콘을 찾아낸다.
hiShared = ImageList_ExtractIcon(0, himlNew, 0);

//
다쓴 아이콘 지우기
DestroyIcon(hiHand);

//
다쓴 이미지 리스트 지우기
ImageList_Destroy(himl);
ImageList_Destroy(himlNew);

//
완성된 아이콘 돌려주기
return hiShared;
}