다음을 통해 공유


TB_SETIMAGELIST 메시지

도구 모음이 기본 상태에 있는 단추를 표시하는 데 사용하는 이미지 목록을 설정합니다.

매개 변수

wParam

버전 5.80. 목록의 인덱스입니다. 하나의 이미지 목록만 사용하거나 이전 버전의 공용 컨트롤을 사용하는 경우 wParam을 0으로 설정합니다. 여러 이미지 목록 사용에 대한 자세한 내용은 비고를 참조하세요.

lParam

설정할 이미지 목록에 대한 핸들입니다. 이 매개 변수가 NULL이면 단추에 이미지가 표시되지 않습니다.

반환 값

이전에 단추를 기본 상태로 표시하는 데 사용된 이미지 목록에 대한 핸들을 반환하거나 이전에 이미지 목록이 설정되지 않은 경우 NULL을 반환합니다.

설명

참고

사용자의 애플리케이션은 도구 모음이 제거된 후 이미지 목록을 해제해야 합니다.

TB_SETIMAGELIST 메시지는 TB_ADDBITMAP과 결합할 수 없습니다. 또한 내부적으로 TB_ADDBITMAP를 호출하는 CreateToolbarEx로 만든 도구 모음과 함께 사용할 수 없습니다. CreateToolbarEx로 도구 모음을 만들거나 TB_ADDBITMAP을 사용하여 이미지를 추가하면 도구 모음이 이미지 목록을 내부적으로 관리합니다. TB_SETIMAGELIST로 수정하려고 하면 예측할 수 없는 결과가 발생합니다.

공용 컨트롤의 버전 5.80 이상에서는 단추 이미지가 동일한 이미지 목록에서 나올 필요가 없습니다. 도구 모음 단추 이미지에 여러 이미지 목록을 사용하려면:

  1. 도구 모음 컨트롤에 wParam(버전 번호)이 5로 설정된 CCM_SETVERSION 메시지를 전송하여 여러 이미지 목록을 사용하도록 설정합니다.
  2. 사용하려는 각 이미지 목록에 대해 도구 모음 컨트롤에 TB_SETIMAGELIST 메시지를 보냅니다. wParam을 목록을 식별하는 데 사용할 애플리케이션 정의 wParam 값으로 설정합니다. lParam을 목록의 HIMAGELIST 핸들로 설정합니다.
  3. 각 단추에 대해, 단추 TBBUTTON 구조체의 iBitmap 멤버를 MAKELONG(iIndex, iImageID)으로 설정합니다. iImageID 값은 2단계에서 정의한 적절한 이미지 목록의 ID입니다. iIndex 값은 해당 목록에 있는 특정 이미지의 인덱스입니다.
  4. 도구 모음 컨트롤에 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[데스크톱 앱만 해당]
헤더
Commctrl.h

추가 정보

MAKELONG