다음을 통해 공유


CImageList 수업

Windows의 공용 이미지 목록 컨트롤의 기능을 제공합니다.

구문

class CImageList : public CObject

멤버

공용 생성자

속성 설명
CImageList::CImageList CImageList 개체를 생성합니다.

공용 메서드

이름 설명
CImageList::Add 이미지 목록에 하나의 이미지 또는 여러 이미지를 추가합니다.
CImageList::Attach 개체에 이미지 목록을 CImageList 연결합니다.
CImageList::BeginDrag 이미지 끌기를 시작합니다.
CImageList::Copy 개체 내에서 CImageList 이미지를 복사합니다.
CImageList::Create 이미지 목록을 초기화하고 개체에 CImageList 연결합니다.
CImageList::DeleteImageList 이미지 목록을 삭제합니다.
CImageList::DeleteTempMap 에서 만든 임시 개체를 CWinApp 삭제하기 위해 유휴 시간 처리기에서 CImageList 호출됩니다 FromHandle.
CImageList::Detach 개체에서 이미지 목록 개체를 CImageList 분리하고 이미지 목록에 대한 핸들을 반환합니다.
CImageList::DragEnter 끌기 작업 중에 업데이트를 잠그고 끌기 이미지를 지정된 위치에 표시합니다.
CImageList::DragLeave 창을 잠금 해제하고 창을 업데이트할 수 있도록 끌기 이미지를 숨깁니다.
CImageList::DragMove 끌어서 놓기 작업 중에 끌기 이미지를 이동합니다.
CImageList::DragShowNolock 창을 잠그지 않고 끌기 작업 중에 끌기 이미지를 표시하거나 숨깁니다.
CImageList::Draw 끌어서 놓기 작업 중에 끌 이미지를 그립니다.
CImageList::DrawEx 지정된 디바이스 컨텍스트에서 이미지 목록 항목을 그립니다. 이 함수는 지정된 그리기 스타일을 사용하고 이미지를 지정된 색과 혼합합니다.
CImageList::DrawIndirect 이미지 목록에서 이미지를 그립니다.
CImageList::EndDrag 끌기 작업을 종료합니다.
CImageList::ExtractIcon 이미지 목록의 이미지 및 마스크를 기반으로 아이콘을 만듭니다.
CImageList::FromHandle 이미지 목록에 대한 핸들이 CImageList 제공되면 개체에 대한 포인터를 반환합니다. CImageList 개체가 핸들에 연결되지 않은 경우 임시 CImageList 개체를 만들어 연결합니다.
CImageList::FromHandlePermanent 이미지 목록에 대한 핸들이 CImageList 제공되면 개체에 대한 포인터를 반환합니다. 개체가 CImageList 핸들에 연결되지 않은 경우 NULL이 반환됩니다.
CImageList::GetBkColor 이미지 목록의 현재 배경색을 검색합니다.
CImageList::GetDragImage 끌기에 사용되는 임시 이미지 목록을 가져옵니다.
CImageList::GetImageCount 이미지 목록의 이미지 수를 검색합니다.
CImageList::GetImageInfo 이미지에 대 한 정보를 검색합니다.
CImageList::GetSafeHandle 를 검색합니다 m_hImageList.
CImageList::Read 보관 파일에서 이미지 목록을 읽습니다.
CImageList::Remove 이미지 목록에서 이미지를 제거합니다.
CImageList::Replace 이미지 목록에 있는 이미지를 새 이미지로 바꿉니다.
CImageList::SetBkColor 이미지 목록의 배경색을 설정합니다.
CImageList::SetDragCursorImage 새 끌기 이미지를 만듭니다.
CImageList::SetImageCount 이미지 목록의 이미지 수를 다시 설정합니다.
CImageList::SetOverlayImage 이미지의 인덱스(0부터 시작)를 오버레이 마스크로 사용할 이미지 목록에 추가합니다.
CImageList::Write 이미지 목록을 보관 파일에 씁니다.

Public 연산자

속성 설명
CImageList::operator HIMAGELIST HIMAGELIST 연결된 값을 반환합니다 CImageList.

공용 데이터 멤버

속성 설명
CImageList::m_hImageList 이 개체에 연결된 이미지 목록을 포함하는 핸들입니다.

설명

"이미지 목록"은 크기가 같은 이미지의 컬렉션으로, 각각 0부터 시작하는 인덱스로 참조할 수 있습니다. 이미지 목록은 큰 아이콘 또는 비트맵 집합을 효율적으로 관리하는 데 사용됩니다. 이미지 목록의 모든 이미지는 화면 디바이스 형식의 단일 와이드 비트맵에 포함됩니다. 이미지 목록에는 이미지를 투명하게 그리는 데 사용되는 마스크(아이콘 스타일)가 포함된 단색 비트맵도 포함될 수 있습니다. Microsoft Win32 API(애플리케이션 프로그래밍 인터페이스)는 이미지를 그리고, 이미지 목록을 만들고 삭제하고, 이미지를 추가 및 제거하고, 이미지를 대체하고, 이미지를 병합하고, 이미지를 끌 수 있는 이미지 목록 함수를 제공합니다.

이 컨트롤(따라서 CImageList 클래스)은 Windows 95/98 및 Windows NT 버전 3.51 이상에서 실행되는 프로그램에서만 사용할 수 있습니다.

사용 CImageList방법에 대한 자세한 내용은 컨트롤 및 사용을 CImageList참조하세요.

상속 계층 구조

CObject

CImageList

요구 사항

머리글: afxcmn.h

CImageList::Add

이미지 목록에 하나 이상의 이미지 또는 아이콘을 추가하려면 이 함수를 호출합니다.

int Add(
    CBitmap* pbmImage,
    CBitmap* pbmMask);

int Add(
    CBitmap* pbmImage,
    COLORREF crMask);

int Add(HICON hIcon);

매개 변수

pbmImage
이미지 또는 이미지가 포함된 비트맵에 대한 포인터입니다. 이미지 수는 비트맵의 너비에서 유추됩니다.

pbmMask
마스크를 포함하는 비트맵에 대한 포인터입니다. 이미지 목록에 마스크가 사용되지 않으면 이 매개 변수는 무시됩니다.

crMask
마스크를 생성하는 데 사용되는 색입니다. 지정된 비트맵에서 이 색의 각 픽셀은 검은색으로 변경되고 마스크의 해당 비트는 1로 설정됩니다.

hIcon
새 이미지에 대한 비트맵 및 마스크가 포함된 아이콘의 핸들입니다.

Return Value

성공하면 첫 번째 새 이미지의 인덱스(0부터 시작)입니다. 그렇지 않으면 - 1.

설명

완료하면 아이콘 핸들을 해제해야 합니다.

예시

// Add my icons.
m_myImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_myImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));

// Add my bitmap, make all black pixels transparent.
CBitmap bm;
bm.LoadBitmap(IDB_BITMAP1);
m_myImageList.Add(&bm, RGB(0, 0, 0));

CImageList::Attach

개체에 이미지 목록을 연결하려면 이 함수를 CImageList 호출합니다.

BOOL Attach(HIMAGELIST hImageList);

매개 변수

hImageList
이미지 목록 개체에 대한 핸들입니다.

Return Value

첨부 파일이 성공한 경우 0이 아닌 경우 그렇지 않으면 0입니다.

예시

void AddQuestion(HIMAGELIST hmyImageList)
{
   CImageList imgList;

   // Attach the image list handle to the CImageList object.
   imgList.Attach(hmyImageList);

   // Add a new icon to the image list.
   imgList.Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));

   // Detach the handle from the CImageList object.
   imgList.Detach();
}

CImageList::BeginDrag

이 함수를 호출하여 이미지 끌기를 시작합니다.

BOOL BeginDrag(
    int nImage,
    CPoint ptHotSpot);

매개 변수

nImage
끌 이미지의 인덱스(0부터 시작하는 인덱스)입니다.

ptHotSpot
시작 끌기 위치(일반적으로 커서 위치)의 좌표입니다. 좌표는 이미지의 왼쪽 위 모서리를 기준으로 합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 함수는 끌기에 사용되는 임시 이미지 목록을 만듭니다. 이미지는 지정된 이미지와 해당 마스크를 현재 커서와 결합합니다. 후속 WM_MOUSEMOVE 메시지에 대한 응답으로 멤버 함수를 사용하여 DragMove 끌기 이미지를 이동할 수 있습니다. 끌기 작업을 종료하려면 멤버 함수를 EndDrag 사용할 수 있습니다.

예시

void CImageListDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
   // Initialize the drag image (usually called from WM_LBUTTONDOWN).
   m_myImageList.BeginDrag(0, CPoint(0, 0));
   m_myImageList.DragEnter(this, point);

   CDialog::OnLButtonDown(nFlags, point);
}

CImageList::CImageList

CImageList 개체를 생성합니다.

CImageList();

CImageList::Copy

이 멤버 함수는 Windows SDK에 설명된 대로 Win32 함수 ImageList_Copy의 동작을 구현합니다.

BOOL Copy(
    int iDst,
    int iSrc,
    UINT uFlags = ILCF_MOVE);

BOOL Copy(
    int iDst,
    CImageList* pSrc,
    int iSrc,
    UINT uFlags = ILCF_MOVE);

매개 변수

iDst
복사 작업의 대상으로 사용할 이미지의 인덱스(0부터 시작)입니다.

iSrc
복사 작업의 원본으로 사용할 이미지의 인덱스(0부터 시작)입니다.

uFlags
만들 복사 작업의 형식을 지정하는 비트 플래그 값입니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
ILCF_MOVE 원본 이미지가 대상 이미지의 인덱스로 복사됩니다. 이 작업을 수행하면 지정된 이미지의 여러 인스턴스가 생성됩니다. 기본값은 ILCF_MOVE입니다.
ILCF_SWAP 원본 및 대상 이미지는 이미지 목록 내의 위치를 교환합니다.

pSrc
복사 작업의 대상인 CImageList 개체에 대한 포인터입니다.

Return Value

성공하는 경우 0이 아니고, 그렇지 않으면 0입니다.

예시

CImageList myImageList2;
myImageList2.Create(32, 32, ILC_COLOR8, 0, 4);

// Copy the first image from myImageList2 and make it
// the first image of m_myImageList.
m_myImageList.Copy(0, &myImageList2, 0, ILCF_MOVE);

// Recopy the image to make it also the last image in m_myImageList.
m_myImageList.Copy(m_myImageList.GetImageCount() - 1, (int)0,
                   (UINT)ILCF_MOVE);

CImageList::Create

이미지 목록을 초기화하고 개체에 CImageList 연결합니다.

BOOL Create(
    int cx,
    int cy,
    UINT nFlags,
    int nInitial,
    int nGrow);

BOOL Create(
    UINT nBitmapID,
    int cx,
    int nGrow,
    COLORREF crMask);

BOOL Create(
    LPCTSTR lpszBitmapID,
    int cx,
    int nGrow,
    COLORREF crMask);

BOOL Create(
    CImageList& imagelist1,
    int nImage1,
    CImageList& imagelist2,
    int nImage2,
    int dx,
    int dy);

BOOL Create(CImageList* pImageList);

매개 변수

cx
각 이미지의 크기(픽셀)입니다.

cy
각 이미지의 크기(픽셀)입니다.

nFlags
만들 이미지 목록의 형식을 지정합니다. 이 매개 변수는 다음 값의 조합일 수 있지만 값 중 하나만 포함할 ILC_COLOR 수 있습니다.

의미
ILC_COLOR 다른 ILC_COLOR* 플래그가 지정되지 않은 경우 기본 동작을 사용합니다. 일반적으로 기본값은 ILC_COLOR4;이지만 이전 표시 드라이버의 경우 기본값은 ILC_COLORDDB.
ILC_COLOR4 이미지 목록의 비트맵으로 4비트(16색) 디바이스 독립적 비트맵(DIB) 섹션을 사용합니다.
ILC_COLOR8 8비트 DIB 섹션을 사용합니다. 색상표에 사용되는 색은 하프톤 팔레트와 동일한 색입니다.
ILC_COLOR16 16비트(32/64k 색) DIB 섹션을 사용합니다.
ILC_COLOR24 24비트 DIB 섹션을 사용합니다.
ILC_COLOR32 32비트 DIB 섹션을 사용합니다.
ILC_COLORDDB 디바이스 종속 비트맵을 사용합니다.
ILC_MASK 마스크를 사용합니다. 이미지 목록에는 두 개의 비트맵이 포함되어 있으며 그중 하나는 마스크로 사용되는 단색 비트맵입니다. 이 값이 포함되지 않으면 이미지 목록에 비트맵이 하나만 포함됩니다. 마스킹된 이미지에 대한 자세한 내용은 이미지 목록에서 이미지 그리기를 참조하세요.

nInitial
이미지 목록에 처음 포함된 이미지 수입니다.

nGrow
시스템에서 새 이미지를 위한 공간을 확보하기 위해 목록의 크기를 조정해야 할 때 이미지 목록이 증가할 수 있는 이미지 수입니다. 이 매개 변수는 크기가 조정된 이미지 목록에 포함될 수 있는 새 이미지의 수를 나타냅니다.

nBitmapID
이미지 목록과 연결할 비트맵의 리소스 ID입니다.

crMask
마스크를 생성하는 데 사용되는 색입니다. 지정된 비트맵에서 이 색의 각 픽셀은 검은색으로 변경되고 마스크의 해당 비트는 1로 설정됩니다.

lpszBitmapID
이미지의 리소스 ID를 포함하는 문자열입니다.

imagelist1
CImageList 개체에 대한 참조입니다.

nImage1
첫 번째 기존 이미지의 인덱스입니다.

imagelist2
CImageList 개체에 대한 참조입니다.

nImage2
두 번째 기존 이미지의 인덱스입니다.

dx
첫 번째 이미지와 연결된 두 번째 이미지의 x축 오프셋(픽셀)입니다.

dy
첫 번째 이미지와 연결된 두 번째 이미지의 y축 오프셋(픽셀)입니다.

pImageList
CImageList 개체에 대한 포인터입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

두 단계로 구성 CImageList 합니다. 먼저 생성자를 호출한 다음, 이미지 목록을 만들어 개체에 CImageList 연결하는 호출Create합니다.

예시

m_myImageList.Create(32, 32, ILC_COLOR8, 0, 4);

CImageList::DeleteImageList

이미지 목록을 삭제하려면 이 함수를 호출합니다.

BOOL DeleteImageList();

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

// Delete the image list and verify.
myImageList2.DeleteImageList();
ASSERT(myImageList2.GetSafeHandle() == NULL);

CImageList::DeleteTempMap

유휴 시간 처리기에서 자동으로 CWinApp 호출되면 FromHandle에서 만든 임시 CImageList 개체를 삭제하지만 개체와 ImageList 일시적으로 연결된 핸들(hImageList)은 삭제하지 DeleteTempMap 않습니다.

static void PASCAL DeleteTempMap();

예시

// Note that this is a static member so an instantiated CImageList
// object is unnecessary.
CImageList::DeleteTempMap();

CImageList::Detach

이 함수를 호출하여 개체에서 이미지 목록 개체를 CImageList 분리합니다.

HIMAGELIST Detach();

Return Value

이미지 목록 개체에 대한 핸들입니다.

설명

이 함수는 이미지 목록 개체에 대한 핸들을 반환합니다.

예시

CImageList::Attach에 대한 예를 참조하세요.

CImageList::DragEnter

끌기 작업 중에 지정된 창 pWndLock 에 대한 업데이트를 잠그고 지정한 위치에 point끌기 이미지를 표시합니다.

static BOOL PASCAL DragEnter(
    CWnd* pWndLock,
    CPoint point);

매개 변수

pWndLock
끌기 이미지를 소유하는 창에 대한 포인터입니다.

point
끌기 이미지를 표시할 위치입니다. 좌표는 창의 왼쪽 위 모서리(클라이언트 영역 아님)를 기준으로 합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

좌표는 창의 왼쪽 위 모서리를 기준으로 하므로 좌표를 지정할 때 테두리, 제목 표시줄 및 메뉴 모음과 같은 창 요소의 너비를 보정해야 합니다.

pWndLock 함수는 NULL바탕 화면 창과 연결된 표시 컨텍스트에서 이미지를 그리고 좌표는 화면의 왼쪽 위 모서리를 기준으로 합니다.

이 함수는 끌기 작업 중에 지정된 창에 대한 다른 모든 업데이트를 잠깁니다. 끌어서 놓기 작업의 대상을 강조 표시하는 등 끌기 작업 중에 그리기를 수행해야 하는 경우 함수를 사용하여 CImageList::DragLeave 끌어온 이미지를 일시적으로 숨길 수 있습니다.

예시

CImageList::BeginDrag에 대한 예를 참조하세요.

CImageList::DragLeave

지정된 pWndLock 창의 잠금을 해제하고 끌기 이미지를 숨겨 창을 업데이트할 수 있습니다.

static BOOL PASCAL DragLeave(CWnd* pWndLock);

매개 변수

pWndLock
끌기 이미지를 소유하는 창에 대한 포인터입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

CImageList::EndDrag에 대한 예를 참조하세요.

CImageList::DragMove

끌어서 놓기 작업 중에 끌 이미지를 이동하려면 이 함수를 호출합니다.

static BOOL PASCAL DragMove(CPoint pt);

매개 변수

pt
새 끌기 위치입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 함수는 일반적으로 메시지에 대한 응답으로 호출됩니다 WM_MOUSEMOVE . 끌기 작업을 시작하려면 멤버 함수를 BeginDrag 사용합니다.

예시

void CImageListDlg::OnMouseMove(UINT nFlags, CPoint point)
{
   m_myImageList.DragMove(point);

   CDialog::OnMouseMove(nFlags, point);
}

CImageList::DragShowNolock

창을 잠그지 않고 끌기 작업 중에 끌기 이미지를 표시하거나 숨깁니다.

static BOOL PASCAL DragShowNolock(BOOL bShow);

매개 변수

bShow
끌기 이미지를 표시할지 여부를 지정합니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 함수는 CImageList::DragEnter 끌기 작업 중에 창에 대한 모든 업데이트를 잠깁니다. 그러나 이 함수는 창을 잠그지 않습니다.

CImageList::Draw

끌어서 놓기 작업 중에 끌 이미지를 그리려면 이 함수를 호출합니다.

BOOL Draw(
    CDC* pDC,
    int nImage,
    POINT pt,
    UINT nStyle);

매개 변수

pDC
대상 디바이스 컨텍스트에 대한 포인터입니다.

nImage
그릴 이미지의 인덱스(0부터 시작하는 인덱스)입니다.

pt
지정된 디바이스 컨텍스트 내에서 그릴 위치입니다.

nStyle
그리기 스타일을 지정하는 플래그입니다. 다음 값 중 하나 이상이 될 수 있습니다.

의미
ILD_BLEND25, ILD_FOCUS 25%를 시스템 강조 색과 혼합하여 이미지를 그립니다. 이미지 목록에 마스크가 포함되어 있지 않으면 이 값은 영향을 미치지 않습니다.
ILD_BLEND50, , ILD_SELECTEDILD_BLEND 50%를 시스템 강조 색과 혼합하여 이미지를 그립니다. 이미지 목록에 마스크가 포함되어 있지 않으면 이 값은 영향을 미치지 않습니다.
ILD_MASK 마스크를 그립니다.
ILD_NORMAL 이미지 목록의 배경색을 사용하여 이미지를 그립니다. 배경색이 값이 CLR_NONE 면 마스크를 사용하여 이미지가 투명하게 그려집니다.
ILD_TRANSPARENT 배경색과 상관없이 마스크를 사용하여 이미지를 투명하게 그립니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

CImageList::SetOverlayImage에 대한 예를 참조하세요.

CImageList::DrawEx

지정된 디바이스 컨텍스트에서 이미지 목록 항목을 그립니다.

BOOL DrawEx(
    CDC* pDC,
    int nImage,
    POINT pt,
    SIZE sz,
    COLORREF clrBk,
    COLORREF clrFg,
    UINT nStyle);

매개 변수

pDC
대상 디바이스 컨텍스트에 대한 포인터입니다.

nImage
그릴 이미지의 인덱스(0부터 시작하는 인덱스)입니다.

pt
지정된 디바이스 컨텍스트 내에서 그릴 위치입니다.

sz
이미지의 왼쪽 위 모서리를 기준으로 그릴 이미지 부분의 크기입니다. Windows SDK에서 확인 dx 합니다 dy ImageList_DrawEx .

clrBk
이미지의 배경색입니다. Windows SDK에서 ImageList_DrawEx 참조 rgbBk 하세요.

clrFg
이미지의 전경색입니다. Windows SDK에서 ImageList_DrawEx 참조 rgbFg 하세요.

nStyle
그리기 스타일을 지정하는 플래그입니다. Windows SDK에서 ImageList_DrawEx 참조 fStyle 하세요.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이 함수는 지정된 그리기 스타일을 사용하고 이미지를 지정된 색과 혼합합니다.

예시

m_myImageList.DrawEx(&dc, 0, CPoint(0, 0), CSize(16, 16), CLR_DEFAULT,
                     CLR_DEFAULT, ILD_IMAGE);

CImageList::DrawIndirect

이미지 목록에서 이미지를 그리려면 이 멤버 함수를 호출합니다.

BOOL DrawIndirect(IMAGELISTDRAWPARAMS* pimldp);

BOOL DrawIndirect(
    CDC* pDC,
    int nImage,
    POINT pt,
    SIZE sz,
    POINT ptOrigin,
    UINT fStyle = ILD_NORMAL,
    DWORD dwRop = SRCCOPY,
    COLORREF rgbBack = CLR_DEFAULT,
    COLORREF rgbFore = CLR_DEFAULT,
    DWORD fState = ILS_NORMAL,
    DWORD Frame = 0,
    COLORREF crEffect = CLR_DEFAULT);

매개 변수

pimldp
그리기 IMAGELISTDRAWPARAMS 작업에 대한 정보를 포함하는 구조체에 대한 포인터입니다.

pDC
대상 디바이스 컨텍스트에 대한 포인터입니다. 작업을 완료하면 이 CDC 개체를 삭제해야 합니다.

nImage
그릴 이미지의 인덱스(0부터 시작)입니다.

pt
POINT 이미지를 그릴 x 및 y 좌표를 포함하는 구조체입니다.

sz
SIZE 그릴 이미지의 크기를 나타내는 구조체입니다.

ptOrigin
POINT 이미지 자체와 관련하여 그리기 작업의 왼쪽 위 모서리를 지정하는 x 좌표와 y 좌표를 포함하는 구조체입니다. x 좌표의 왼쪽과 y 좌표 위에 있는 이미지의 픽셀은 그려지지 않습니다.

fStyle
그리기 스타일 및 선택적으로 오버레이 이미지를 지정하는 플래그입니다. 오버레이 이미지에 대한 자세한 내용은 설명 섹션을 참조하세요. MFC 기본 구현인 ILD_NORMAL이미지 목록의 배경색을 사용하여 이미지를 그립니다. 배경색이 값이 CLR_NONE 면 마스크를 사용하여 이미지가 투명하게 그려집니다.

다른 가능한 스타일은 구조체의 멤버 아래에 fStyle 설명되어 있습니다 IMAGELISTDRAWPARAMS .

dwRop
래스터 작업 코드를 지정하는 값입니다. 이러한 코드는 원본 사각형의 색 데이터를 대상 사각형의 색 데이터와 결합하여 최종 색을 달성하는 방법을 정의합니다. MFC의 기본 구현인 SRCCOPY원본 사각형을 대상 사각형에 직접 복사합니다. 매개 변수에 플래그가 fStyle 포함되지 않은 경우 이 매개 변수는 ILD_ROP 무시됩니다.

다른 가능한 값은 구조체 dwRop 의 멤버 아래에 설명되어 있습니다 IMAGELISTDRAWPARAMS .

rgbBack
기본적으로 CLR_DEFAULT이미지 배경색입니다. 이 매개 변수는 애플리케이션 정의 RGB 값 또는 다음 값 중 하나일 수 있습니다.

의미
CLR_DEFAULT 기본 배경색입니다. 이미지는 이미지 목록 배경색을 사용하여 그려집니다.
CLR_NONE 배경색이 없습니다. 이미지가 투명하게 그려집니다.

rgbFore
이미지 전경색은 기본적으로 CLR_DEFAULT. 이 매개 변수는 애플리케이션 정의 RGB 값 또는 다음 값 중 하나일 수 있습니다.

의미
CLR_DEFAULT 기본 전경색입니다. 이미지는 시스템 강조 색을 전경색으로 사용하여 그려집니다.
CLR_NONE 혼합 색이 없습니다. 이미지는 대상 디바이스 컨텍스트의 색과 혼합됩니다.

이 매개 변수는 또는 ILD_BLEND50 플래그를 ILD_BLEND25 포함하는 경우에만 fStyle 사용됩니다.

fState
그리기 상태를 지정하는 플래그입니다. 이 멤버는 하나 이상의 이미지 목록 상태 플래그를 포함할 수 있습니다.

Frame
채도 및 알파 혼합 효과의 동작에 영향을 줍니다.

이 멤버와 함께 ILS_SATURATE사용할 경우 이 멤버는 아이콘의 각 픽셀에 대해 RGB 트리플렛의 각 색 구성 요소에 추가되는 값을 보유합니다.

이 멤버와 함께 ILS_APLHA사용할 경우 이 멤버는 알파 채널의 값을 보유합니다. 이 값은 0에서 255까지일 수 있으며 0은 완전히 투명하고 255는 완전히 불투명합니다.

crEffect
COLORREF 네온 및 그림자 효과에 사용되는 값입니다.

Return Value

TRUE 이미지가 성공적으로 그려지면 FALSE.

설명

Win32 구조를 직접 채우려면 첫 번째 버전을 사용합니다. MFC의 기본 인수를 하나 이상 활용하거나 구조를 관리하지 않으려면 두 번째 버전을 사용합니다.

오버레이 이미지는 매개 변수에 의해 nImage 이 멤버 함수에 지정된 기본 이미지 위에 그려지는 이미지입니다. 매크로를 사용하여 Draw 지정한 오버레이 마스크의 1부터 시작하는 인덱스와 함께 멤버 함수를 사용하여 오버레이 마스크를 INDEXTOOVERLAYMASK 그립니다.

예시

int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();

::ImageList_GetIconSize(m_myImageList, &cx, &cy);

// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
   m_myImageList.DrawIndirect(&dc, i, CPoint(dx, 0),
                              CSize(cx, cy), CPoint(0, 0));
   dx += cx;
}

CImageList::EndDrag

끌기 작업을 종료하려면 이 함수를 호출합니다.

static void PASCAL EndDrag();

설명

끌기 작업을 시작하려면 멤버 함수를 BeginDrag 사용합니다.

예시

void CImageListDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
   // Terminate the drag image (usually called from WM_LBUTTONUP).
   m_myImageList.DragLeave(this);
   m_myImageList.EndDrag();

   CDialog::OnLButtonUp(nFlags, point);
}

CImageList::ExtractIcon

이미지 목록의 이미지 및 관련 마스크를 기반으로 아이콘을 만들려면 이 함수를 호출합니다.

HICON ExtractIcon(int nImage);

매개 변수

nImage
이미지의 인덱스(0부터 시작하는 인덱스)입니다.

Return Value

성공하면 아이콘의 핸들입니다. 그렇지 않으면 NULL.

설명

이 메서드는 매크로의 동작을 ImageList_ExtractIcon 사용하여 아이콘을 만듭니다. ImageList_ExtractIcon 아이콘 만들기 및 정리에 대한 자세한 내용은 매크로를 참조하세요.

예시

int i, dx, cx, cy, nCount = m_myImageList.GetImageCount();
HICON hIcon;

::ImageList_GetIconSize(m_myImageList, &cx, &cy);

// Draw the images of the image list on the DC.
for (dx = 0, i = 0; i < nCount; i++)
{
   hIcon = m_myImageList.ExtractIcon(i);

   dc.DrawIcon(dx, 0, hIcon);
   dx += cx;
}

CImageList::FromHandle

이미지 목록에 대한 핸들이 CImageList 제공되면 개체에 대한 포인터를 반환합니다.

static CImageList* PASCAL FromHandle(HIMAGELIST hImageList);

매개 변수

hImageList
이미지 목록을 지정합니다.

Return Value

성공하면 개체에 대한 포인터입니다 CImageList . 그렇지 않으면 NULL.

설명

핸들에 CImageList 아직 연결되지 않은 경우 임시 CImageList 개체가 만들어지고 연결됩니다. 이 임시 CImageList 개체는 다음에 애플리케이션이 이벤트 루프에서 유휴 시간을 가지며, 이때 모든 임시 개체가 삭제될 때까지만 유효합니다.

예시

CImageList *ConvertHandle(HIMAGELIST hmyImageList)
{
   // Convert the HIMAGELIST to a CImageList*.
   ASSERT(hmyImageList != NULL);
   CImageList *pmyImageList = CImageList::FromHandle(hmyImageList);
   ASSERT(pmyImageList != NULL);

   return pmyImageList;
}

CImageList::FromHandlePermanent

이미지 목록에 대한 핸들이 CImageList 제공되면 개체에 대한 포인터를 반환합니다.

static CImageList* PASCAL FromHandlePermanent(HIMAGELIST hImageList);

매개 변수

hImageList
이미지 목록을 지정합니다.

Return Value

성공하면 개체에 대한 포인터입니다 CImageList . 그렇지 않으면 NULL.

설명

개체가 CImageList 핸들 NULL 에 연결되지 않은 경우 반환됩니다.

예시

CImageList *ConvertHandlePermanent(HIMAGELIST hmyImageList)
{
   // Convert the HIMAGELIST to a CImageList*.
   ASSERT(hmyImageList != NULL);
   CImageList *pmyImageList = CImageList::FromHandlePermanent(hmyImageList);
   ASSERT(pmyImageList != NULL);

   return pmyImageList;
}

CImageList::GetBkColor

이 함수를 호출하여 이미지 목록의 현재 배경색을 검색합니다.

COLORREF GetBkColor() const;

Return Value

개체 배경색의 CImageList RGB 색 값입니다.

예시

CImageList::SetBkColor에 대한 예를 참조하세요.

CImageList::GetDragImage

끌기에 사용되는 임시 이미지 목록을 가져옵니다.

static CImageList* PASCAL GetDragImage(
    LPPOINT lpPoint,
    LPPOINT lpPointHotSpot);

매개 변수

lpPoint
POINT 현재 끌기 위치를 받는 구조체의 주소입니다.

lpPointHotSpot
POINT 끌기 위치를 기준으로 끌기 이미지의 오프셋을 받는 구조체의 주소입니다.

Return Value

성공하면 끌기에 사용되는 임시 이미지 목록에 대한 포인터입니다. 그렇지 않으면 . NULL

CImageList::GetImageCount

이미지 목록의 이미지 수를 검색하려면 이 함수를 호출합니다.

int GetImageCount() const;

Return Value

이미지 수입니다.

예시

CImageList::ExtractIcon에 대한 예를 참조하세요.

CImageList::GetImageInfo

이미지에 대한 정보를 검색하려면 이 함수를 호출합니다.

BOOL GetImageInfo(
    int nImage,
    IMAGEINFO* pImageInfo) const;

매개 변수

nImage
이미지의 인덱스(0부터 시작하는 인덱스)입니다.

pImageInfo
이미지에 IMAGEINFO 대한 정보를 수신하는 구조체에 대한 포인터입니다. 이 구조의 정보를 사용하여 이미지의 비트맵을 직접 조작할 수 있습니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

구조체에는 IMAGEINFO 이미지 목록의 이미지에 대한 정보가 포함됩니다.

CImageList::GetSafeHandle

이 함수를 호출하여 데이터 멤버를 검색합니다 m_hImageList .

HIMAGELIST GetSafeHandle() const;

Return Value

연결된 이미지 목록에 대한 핸들입니다. 개체가 연결되어 있지 않으면 그렇지 않습니다 NULL .

예시

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.GetSafeHandle();

CImageList::m_hImageList

이 개체에 연결된 이미지 목록의 핸들입니다.

HIMAGELIST m_hImageList;

설명

데이터 멤버는 m_hImageList 형식 HIMAGELIST의 공용 변수입니다.

예시

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList.m_hImageList;

CImageList::operator HIMAGELIST

이 연산자를 사용하여 개체의 연결된 핸들을 가져옵니다 CImageList .

operator HIMAGELIST() const;

Return Value

성공하면 개체가 나타내는 이미지 목록에 대한 핸들이 CImageList 고, 그렇지 않으면 NULL.

설명

이 연산자는 개체의 직접 사용을 지원하는 캐스팅 연산자입니다 HIMAGELIST .

예시

// Get the safe handle to the image list.
HIMAGELIST hImageList = m_myImageList;

CImageList::Read

이 함수를 호출하여 보관 파일에서 이미지 목록을 읽습니다.

BOOL Read(CArchive* pArchive);

매개 변수

pArchive
이미지 목록을 읽을 개체에 대한 포인터 CArchive 입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

// Open the archive to load the image list from.
CFile myFile(_T("myfile.data"), CFile::modeRead);
CArchive ar(&myFile, CArchive::load);
CImageList myImgList;

// Load the image list from the archive.
myImgList.Read(&ar);

CImageList::Remove

이미지 목록 개체에서 이미지를 제거하려면 이 함수를 호출합니다.

BOOL Remove(int nImage);

매개 변수

nImage
제거할 이미지의 인덱스(0부터 시작하는 인덱스)입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

이제 다음 nImage 모든 항목이 한 위치 아래로 이동합니다. 예를 들어 이미지 목록에 두 개의 항목이 포함된 경우 첫 번째 항목을 삭제하면 나머지 항목이 이제 첫 번째 위치에 있게 됩니다. nImage첫 번째 위치에 있는 항목의 경우 =0입니다.

예시

// Remove every other image from the image list.
for (int i = 0; i < m_myImageList.GetImageCount(); i++)
{
   m_myImageList.Remove(i);
}

CImageList::Replace

이미지 목록의 이미지를 새 이미지로 바꾸려면 이 함수를 호출합니다.

BOOL Replace(
    int nImage,
    CBitmap* pbmImage,
    CBitmap* pbmMask);

int Replace(
    int nImage,
    HICON hIcon);

매개 변수

nImage
바꿀 이미지의 인덱스(0부터 시작하는 인덱스)입니다.

pbmImage
이미지를 포함하는 비트맵에 대한 포인터입니다.

pbmMask
마스크를 포함하는 비트맵에 대한 포인터입니다. 이미지 목록에 마스크가 사용되지 않으면 이 매개 변수는 무시됩니다.

hIcon
새 이미지에 대한 비트맵 및 마스크가 포함된 아이콘에 대한 핸들입니다.

Return Value

성공하면 버전이 0이 아닌 값을 반환하고 BOOL , 그렇지 않으면 0을 반환합니다.

성공하면 버전이 반환되는 이미지의 인덱스(0부터 시작하는 인덱스)를 반환하고 int , 그렇지 않으면 1을 반환합니다.

설명

호출 후 이 멤버 함수를 호출 SetImageCount 하여 자리 표시자 이미지 인덱스 번호에 유효한 새 이미지를 할당합니다.

예시

CImageList::SetImageCount에 대한 예를 참조하세요.

CImageList::SetBkColor

이미지 목록의 배경색을 설정하려면 이 함수를 호출합니다.

COLORREF SetBkColor(COLORREF cr);

매개 변수

cr
설정할 배경색입니다. CLR_NONE일 수 있습니다. 이 경우 이미지는 마스크를 사용하여 투명하게 그려집니다.

Return Value

성공하면 이전 배경색입니다. 그렇지 않으면 CLR_NONE.

예시

// Set the background color to white.
m_myImageList.SetBkColor(RGB(255, 255, 255));
ASSERT(m_myImageList.GetBkColor() == RGB(255, 255, 255));

CImageList::SetDragCursorImage

지정된 이미지(일반적으로 마우스 커서 이미지)를 현재 끌기 이미지와 결합하여 새 끌기 이미지를 만듭니다.

BOOL SetDragCursorImage(
    int nDrag,
    CPoint ptHotSpot);

매개 변수

nDrag
끌기 이미지와 결합할 새 이미지의 인덱스입니다.

ptHotSpot
새 이미지 내의 핫 스폿 위치입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

끌기 함수는 끌기 작업 중에 새 이미지를 사용하므로 호출 후 CImageList::SetDragCursorImageWindows ShowCursor 함수를 사용하여 실제 마우스 커서를 숨겨야 합니다. 그렇지 않으면 끌기 작업을 하는 동안 시스템에 마우스 커서가 두 개 있는 것처럼 보일 수 있습니다.

CImageList::SetImageCount

개체의 이미지 수를 다시 설정하려면 이 멤버 함수를 CImageList 호출합니다.

BOOL SetImageCount(UINT uNewCount);

매개 변수

uNewCount
이미지 목록의 새 총 이미지 수를 지정하는 값입니다.

Return Value

성공하는 경우 0이 아니고, 그렇지 않으면 0입니다.

설명

이미지 목록의 이미지 수를 늘리기 위해 이 멤버 함수를 호출하는 경우 각 추가 이미지를 호출 Replace 하여 유효한 이미지에 새 인덱스를 할당합니다. 유효한 이미지에 인덱스를 할당하지 못하면 새 이미지를 만드는 그리기 작업을 예측할 수 없습니다.

이 함수를 사용하여 이미지 목록의 크기를 줄이면 잘린 이미지가 해제됩니다.

예시

// Set the image count of the image list to be 10 with
// all images being the system question mark icon.
m_myImageList.SetImageCount(10);
HICON hIcon = AfxGetApp()->LoadStandardIcon(IDI_QUESTION);

for (int i = 0; i < 10; i++)
{
   m_myImageList.Replace(i, hIcon);
}

CImageList::SetOverlayImage

이 함수를 호출하여 이미지의 인덱스(0부터 시작)를 오버레이 마스크로 사용할 이미지 목록에 추가합니다.

BOOL SetOverlayImage(
    int nImage,
    int nOverlay);

매개 변수

nImage
오버레이 마스크로 사용할 이미지의 인덱스(0부터 시작하는 인덱스)입니다.

nOverlay
오버레이 마스크의 1부터 시작하는 인덱스입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

설명

최대 4개의 인덱스를 목록에 추가할 수 있습니다.

오버레이 마스크는 다른 이미지 위에 투명하게 그려진 이미지입니다. 매크로를 사용하여 지정한 오버레이 마스크의 1부터 시작하는 인덱스와 함께 멤버 함수를 사용하여 CImageList::Draw 이미지 위에 오버레이 마스크를 INDEXTOOVERLAYMASK 그립니다.

예시

// Add a new image to the image list.
int nIndex = m_myImageList.Add(AfxGetApp()->LoadStandardIcon(IDI_QUESTION));

if (nIndex != -1)
{
   // Make the new image an overlay image.
   m_myImageList.SetOverlayImage(nIndex, 1);

   // Draw the first image in the image list with an overlay image.
   m_myImageList.Draw(&dc, 0, CPoint(0, 0), INDEXTOOVERLAYMASK(1));
}

CImageList::Write

이미지 목록 개체를 보관 파일에 쓰려면 이 함수를 호출합니다.

BOOL Write(CArchive* pArchive);

매개 변수

pArchive
이미지 목록을 저장할 개체에 대한 포인터 CArchive 입니다.

Return Value

성공하면 0이 아니고, 그렇지 않으면 0입니다.

예시

// Open the archive to store the image list in.
CFile myFile(_T("myfile.data"), CFile::modeCreate | CFile::modeWrite);
CArchive ar(&myFile, CArchive::store);

// Store the image list in the archive.
m_myImageList.Write(&ar);

참고 항목

CObject 클래스
계층 구조 차트
CListCtrl 수업
CTabCtrl 수업