시스템 아이콘 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;
}
'개발언어 > c++' 카테고리의 다른 글
ATL Event Thread, ATL 쓰레드 이벤트 발생 시키기 (0) | 2016.07.09 |
---|---|
Event Driven Programming using Template Specializations in C++ (0) | 2016.07.09 |
HSB(HSV) 값을 RGB로 변경하는 공식 (0) | 2016.06.13 |
RGB to HSV and HSV to RGB (1) | 2016.06.13 |
함수 포인트, Function Point, 동적 함수호출,임의의 함수 호출 (0) | 2016.06.13 |