TB_SETIMAGELIST 메시지
도구 모음이 기본 상태에 있는 단추를 표시하는 데 사용하는 이미지 목록을 설정합니다.
매개 변수
-
wParam
-
버전 5.80. 목록의 인덱스입니다. 하나의 이미지 목록만 사용하거나 이전 버전의 공용 컨트롤을 사용하는 경우 wParam을 0으로 설정합니다. 여러 이미지 목록 사용에 대한 자세한 내용은 비고를 참조하세요.
-
lParam
-
설정할 이미지 목록에 대한 핸들입니다. 이 매개 변수가 NULL이면 단추에 이미지가 표시되지 않습니다.
반환 값
이전에 단추를 기본 상태로 표시하는 데 사용된 이미지 목록에 대한 핸들을 반환하거나 이전에 이미지 목록이 설정되지 않은 경우 NULL을 반환합니다.
설명
참고
사용자의 애플리케이션은 도구 모음이 제거된 후 이미지 목록을 해제해야 합니다.
TB_SETIMAGELIST 메시지는 TB_ADDBITMAP과 결합할 수 없습니다. 또한 내부적으로 TB_ADDBITMAP를 호출하는 CreateToolbarEx로 만든 도구 모음과 함께 사용할 수 없습니다. CreateToolbarEx로 도구 모음을 만들거나 TB_ADDBITMAP을 사용하여 이미지를 추가하면 도구 모음이 이미지 목록을 내부적으로 관리합니다. TB_SETIMAGELIST로 수정하려고 하면 예측할 수 없는 결과가 발생합니다.
공용 컨트롤의 버전 5.80 이상에서는 단추 이미지가 동일한 이미지 목록에서 나올 필요가 없습니다. 도구 모음 단추 이미지에 여러 이미지 목록을 사용하려면:
- 도구 모음 컨트롤에 wParam(버전 번호)이 5로 설정된 CCM_SETVERSION 메시지를 전송하여 여러 이미지 목록을 사용하도록 설정합니다.
- 사용하려는 각 이미지 목록에 대해 도구 모음 컨트롤에 TB_SETIMAGELIST 메시지를 보냅니다. wParam을 목록을 식별하는 데 사용할 애플리케이션 정의 wParam 값으로 설정합니다. lParam을 목록의 HIMAGELIST 핸들로 설정합니다.
- 각 단추에 대해, 단추 TBBUTTON 구조체의 iBitmap 멤버를 MAKELONG(iIndex, iImageID)으로 설정합니다. iImageID 값은 2단계에서 정의한 적절한 이미지 목록의 ID입니다. iIndex 값은 해당 목록에 있는 특정 이미지의 인덱스입니다.
- 도구 모음 컨트롤에 TB_ADDBUTTONS 메시지를 전송하여 단추를 추가합니다.
다음 코드 조각에서는 세 개의 다른 이미지 목록의 이미지를 사용하여 도구 모음에 5개의 단추를 추가하는 방법을 보여 줍니다. 여러 이미지 목록에 대한 지원은 CCM_SETVERSION 메시지로 사용하도록 설정됩니다. 그런 다음 이미지 목록이 설정되고 0~2의 ID가 할당됩니다. 단추에는 다음과 같이 이미지 목록에서 이미지가 할당됩니다.
- 단추 0은 인덱스가 1인 이미지 목록 0(ahim[0])에서 가져온 것입니다.
- 단추 1은 인덱스가 1인 이미지 목록 1(ahim[1])에 있습니다.
- 단추 2는 인덱스가 1인 이미지 목록 2(ahim[2])에서 가져온 것입니다.
- 단추 3은 인덱스가 2인 이미지 목록 0(ahim[0])의 단추입니다.
- 단추 4는 인덱스가 3인 이미지 목록 1(ahim[1])의 단추입니다.
마지막으로 TB_ADDBUTTONS 메시지와 함께 단추가 도구 모음 컨트롤에 추가됩니다.
//Enable multiple image lists
SendMessage(hwndTB, CCM_SETVERSION, (WPARAM) 5, 0);
//Set the image lists and assign them IDs of 0-2
SendMessage(hwndTB, TB_SETIMAGELIST, 0, (LPARAM)ahiml[0]);
SendMessage(hwndTB, TB_SETIMAGELIST, 1, (LPARAM)ahiml[1]);
SendMessage(hwndTB, TB_SETIMAGELIST, 2, (LPARAM)ahiml[2]);
// Create the five buttons
TBBUTTON rgtb[5];
//... initialize the TBBUTTON structures as usual ...
//Assign images to each button
rgtb[0].iBitmap = MAKELONG(1, 0);
rgtb[1].iBitmap = MAKELONG(1, 1);
rgtb[2].iBitmap = MAKELONG(1, 2);
rgtb[3].iBitmap = MAKELONG(2, 0);
rgtb[4].iBitmap = MAKELONG(3, 1);
// Add the five buttons to the toolbar control
SendMessage(hwndTB, TB_ADDBUTTONS, 5, (LPARAM)(&rgtb);
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 |
Windows Server 2003[데스크톱 앱만 해당] |
헤더 |
|