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
참조하세요.
상속 계층 구조
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_SELECTED ILD_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
이미지가 성공적으로 그려지면
설명
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::SetDragCursorImage
Windows 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);