LoadImage

¿øÇü

HANDLE LoadImage(HINSTANCE hinst, LPCTSTR lpszName, UINT uType, int cxDesired, int cyDesired, UINT fuLoad);

MFC ¿øÇü

ÇØ´çÇÏ´Â ÇÔ¼ö ¾øÀ½

Àμö

¢ºhinst : À̹ÌÁö ¸®¼Ò½º¸¦ °¡Áø ¸ðµâÀÇ ÇÚµé. OEM À̹ÌÁö¸¦ Àаųª ÆÄÀÏ¿¡¼­ ÀÐÀ» ¶§´Â NULL·Î ÁØ´Ù.

¢ºlpszName : ÀÐÀ» À̹ÌÁö¸¦ ÁöÁ¤ÇÑ´Ù. hinst ¸ðµâÀÇ ¸®¼Ò½ºÀÎ °æ¿ì ¸®¼Ò½º ¹®ÀÚ¿­ ¶Ç´Â MAKEINTRESOURCE ¸ÅÅ©·Î·Î ÀаíÀÚÇÏ´Â ¸®¼Ò½º¸¦ ÁöÁ¤ÇØ ÁØ´Ù. hinst°¡ NULLÀÌ°í ÆÄÀÏ¿¡¼­ ÀÐÀ» ¶§ ÀÌ Àμö´Â À̹ÌÁö ÆÄÀÏÀÇ °æ·Î¸¦ ÁöÁ¤ÇÑ´Ù. hinst°¡ NULLÀÌ°í ÆÄÀÏ¿¡¼­ ÀÐÁö ¾ÊÀ» ¶§, Áï LR_LOADFROMFILE Ç÷¡±×°¡ ÁöÁ¤µÇÁö ¾Ê¾ÒÀ» ¶§ ÀÌ Àμö´Â OEM À̹ÌÁö¸¦ ÁöÁ¤Çϸç OBM_, OIC_, OCR_·Î ½ÃÀ۵Ǵ ODM À̹ÌÁöÀÇ ID¸¦ ÁöÁ¤ÇÑ´Ù.

¢ºuType : ÀаíÀÚ ÇÏ´Â À̹ÌÁöÀÇ Å¸ÀÔÀ» ÁöÁ¤Çϸç IMAGE_BITMAP, IMAGE_CURSOR, IMAGE_ICON Áß Çϳª¸¦ ÁöÁ¤ÇØ ÁØ´Ù.

¢ºcxDesired, cyDesired : ¾ÆÀÌÄÜ°ú Ä¿¼­¸¦ ÀÐÀ» °æ¿ì ¸®¼Ò½º¿¡ ÀÖ´Â À̹ÌÁö Áß ¾î¶² Å©±âÀÇ À̹ÌÁö¸¦ ÀÐÀ» °ÍÀΰ¡¸¦ ÁöÁ¤ÇÑ´Ù. ÀÌ °ªÀÌ 0ÀÌ°í LR_DEFAULTSIZE Ç÷¡±×°¡ ÁöÁ¤µÇ¾î ÀÖÀ¸¸é ½Ã½ºÅÛ ¸ÞÆ®¸¯½º¿¡ Á¤ÀǵǾî ÀÖ´Â SM_CXICON, SM_CXCURSOR Å©±âÀÇ À̹ÌÁö¸¦ Àоî¿Â´Ù. ÀÌ °ªÀÌ 0ÀÌ°í LR_DEFAULTSIZE Ç÷¡±×°¡ ÁöÁ¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é ¸®¼Ò½ºÀÇ ½ÇÁ¦ Å©±â´ë·Î Àоî¿Â´Ù.

¢ºfuLoad : À̹ÌÁö¸¦ Àоî¿Ã ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â Ç÷¡±×ÀÌ´Ù.

Ç÷¡±× ¼³¸í

LR_DEFAULTCOLOR

µðÆúÆ® Ç÷¡±×. Èæ¹éÀ¸·Î ÀÐÁö ¾Êµµ·Ï ÇÑ´Ù.

LR_CREATEDIBSECTION

ºñÆ®¸ÊÀÇ °æ¿ì¿¡¸¸ Àû¿ëµÇ¸ç ȣȯ ºñÆ®¸Ê ´ë½Å DIB ¼½¼Ç ºñÆ®¸ÊÀ¸·Î Àоî¿Â´Ù.

LR_DEFAULTSIZE

cxDesired, cyDesired°¡ 0ÀÏ °æ¿ì ½Ã½ºÅÛ ¸ÞÆ®¸¯½º°¡ ÁöÁ¤ÇÏ´Â µðÆúÆ® Å©±â´ë·Î À̹ÌÁö¸¦ Àоî¿Â´Ù.

LR_LOADFROMFILE

lpszName Àμö¸¦ ¸®¼Ò½º À̸§ ´ë½Å ÆÄÀϸíÀ¸·Î ÀνÄÇÏ¿© ÆÄÀÏ¿¡¼­ ¸®¼Ò½º¸¦ Àоî¿Â´Ù.

LR_LOADMAP3DCOLORS

À̹ÌÁöÀÇ »ö»ó Å×ÀÌºí¿¡¼­ ȸ»ö °è¿­ÀÇ »ö»óÀ» ã¾Æ ½Ã½ºÅÛ »ö»óÀ¸·Î º¯°æÇØ ÁØ´Ù. 256»ö»ó ÀÌ»óÀÇ ºñÆ®¸Ê¿¡¼­´Â ÀÌ ¼Ó¼ºÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.DkGray(128,128,128)Àº COLOR_3DSHADOW·Î º¯°æµÇ¸ç Gray(192,192,192)´Â COLOR_3DFACE·Î º¯°æµÇ¸ç LtGray(223,223,223)Àº COLOR_3DLIGHT·Î º¯°æµÈ´Ù.

LR_LOADTRANSPARENT

À̹ÌÁöÀÇ Ã¹ Çȼ¿À» Àоî COLOR_WINDOW ½Ã½ºÅÛ »ö»óÀ¸·Î ¹Ù²ãÁØ´Ù. 256»ö»ó ÀÌ»óÀÇ ºñÆ®¸Ê¿¡¼­´Â ÀÌ ¼Ó¼ºÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù.

LR_MONOCHROME

À̹ÌÁö¸¦ Èæ¹éÀ¸·Î Àд´Ù.

LR_SHARED

°°Àº À̹ÌÁö¸¦ ¿©·¯ ¹ø ÀÐÀ» °æ¿ì °°Àº À̹ÌÁö ÇÚµéÀ» °øÀ¯ÇÑ´Ù. ÀÌ Ç÷¡±×°¡ ¼³Á¤µÇ¾î ÀÖÁö ¾ÊÀ¸¸é °°Àº À̹ÌÁö¿¡ ´ëÇØ LoadImage¸¦ È£ÃâÇÒ ¶§ ´Ù¸¥ ÇÚµéÀ» ¸®ÅÏÇØ ÁØ´Ù. ÀÌ Ç÷¡±×·Î ÀÐÀº À̹ÌÁö´Â ½Ã½ºÅÛÀÌ ÀûÀýÇÑ ¶§¿¡ ¾Ë¾Æ¼­ Æı«ÇØ ÁØ´Ù. ÀÌ Ç÷¡±×¸¦ ÁÖÁö ¾Ê¾ÒÀ» °æ¿ì DeleteObject, DestroyCursor, DestroyIcon ÇÔ¼ö·Î À̹ÌÁö¸¦ ¸í½ÃÀûÀ¸·Î Æı«ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

LR_VGACOLOR VGA »ö»óÀ» »ç¿ëÇÑ´Ù.

 

¸®ÅÏ

¼º°øÇϸé Àоî¿Â À̹ÌÁöÀÇ ÇÚµéÀ» ¸®ÅÏÇÏ¸ç ½ÇÆнà NULLÀ» ¸®ÅÏÇÑ´Ù.

¼³¸í

LoadIcon, LoadCurosr, LoadBitmap 16ºñÆ® ÇÔ¼öÀÇ ¸ðµç ±â´ÉÀ» ÅëÇÕÇؼ­ °¡Áö´Â ÇÔ¼öÀÌ¸ç ¸î°¡Áö Ãß°¡ÀûÀÎ ±â´ÉÀ» ´õ °¡Áö°í ÀÖ´Ù. À̹ÌÁö¸¦ DIB »ö¼ÇÀ¸·Î ÀÐÀ» ¼ö ÀÖÀ¸¸ç ÆÄÀÏ ÇüÅÂÀÇ À̹ÌÁö¸¦ ÀÐÀ» ¼ö ÀÖ´Â ´É·ÂÀÌ ÀÖÀ¸¸ç Åõ¸í ó¸®, Å©±â ¼±Åà µîÀÇ ¿É¼ÇÀÌ Àû¿ëµÈ´Ù. 32ºñÆ® ÇÁ·Î±×·¥¿¡¼­´Â °¡±ÞÀûÀ̸é ÀÌ ÇÔ¼ö·Î À̹ÌÁö¸¦ Àд °ÍÀÌ ÁÁ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ¸®¼Ò½º ¹× ÆÄÀÏ·Î µÇ¾î ÀÖ´Â ¸®¼Ò½º¸¦ Àоî È­¸éÀ¸·Î Ãâ·ÂÇØ ÁØ´Ù.

#include "resource.h"
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	HBITMAP hBit, OldBit;
	BITMAP bit;
	HDC hMemDC;

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		hMemDC=CreateCompatibleDC(hdc);
		
		hBit=(HBITMAP)LoadImage(g_hInst,MAKEINTRESOURCE(IDB_BITMAP1),IMAGE_BITMAP,
			0,0,LR_CREATEDIBSECTION);
		GetObject(hBit,sizeof(bit),&bit);
		OldBit=(HBITMAP)SelectObject(hMemDC,hBit);
		BitBlt(hdc,10,10,bit.bmWidth,bit.bmHeight,hMemDC,0,0,SRCCOPY);
		SelectObject(hMemDC,OldBit);
		DeleteObject(hBit);

		hBit=(HBITMAP)LoadImage(NULL,"pmy.bmp",IMAGE_BITMAP,
			0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);
		GetObject(hBit,sizeof(bit),&bit);
		OldBit=(HBITMAP)SelectObject(hMemDC,hBit);
		BitBlt(hdc,200,10,bit.bmWidth,bit.bmHeight,hMemDC,0,0,SRCCOPY);
		SelectObject(hMemDC,OldBit);
		DeleteObject(hBit);

		DeleteDC(hMemDC);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

½ÇÇà °á°ú´Â ´ÙÀ½°ú °°´Ù. ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇϸé DIB ÆÄÀÏÀ» Àоî¿Í È­¸éÀ¸·Î Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.

À̹ÌÁö¸¦ ÇÁ¸°ÅÍ·Î Ãâ·ÂÇÒ ¶§³ª Ç¥ÁØ Å©±â°¡ ¾Æ´Ñ ¾ÆÀÌÄÜÀ» ÀÐÀ» ¶§´Â LoadIcon, LoadBitmap ´ë½Å ¹Ýµå½Ã ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

¿¹Á¦ 2

´ÙÀ½ ¿¹Á¦´Â LR_LOADTRANSPARENTÇ÷¡±×¸¦ »ç¿ëÇÏ¿© À̹ÌÁö¸¦ Åõ¸íÇÏ°Ô Àоî¿Í Ãâ·ÂÇÑ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	HBITMAP hBit, OldBit;
	BITMAP bit;
	HDC hMemDC;

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		hMemDC=CreateCompatibleDC(hdc);
		
		hBit=(HBITMAP)LoadImage(NULL,"test.bmp",IMAGE_BITMAP,
			0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION);
		GetObject(hBit,sizeof(bit),&bit);
		OldBit=(HBITMAP)SelectObject(hMemDC,hBit);
		BitBlt(hdc,10,10,bit.bmWidth,bit.bmHeight,hMemDC,0,0,SRCCOPY);
		SelectObject(hMemDC,OldBit);
		DeleteObject(hBit);

		DeleteDC(hMemDC);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

ÆĶõ»ö ¹è°æ¿¡ ´Ù¼öÀÇ ¿øÀ» °¡Áö´Â °£´ÜÇÑ À̹ÌÁö¸¦ ÀÛ¼ºÇÑ ÈÄ ÀÌ ÆÄÀÏÀ» Àоî¿Í Ãâ·ÂÇÏ¿´´Ù. ½ÇÇà °á°ú´Â ´ÙÀ½°ú °°À¸¸ç ÆĶõ»ö ¹è°æÀÌ ±×´ë·Î º¸ÀδÙ.

LoadImage ÇÔ¼ö¿¡ LR_LOADTRANSPARENT Ç÷¡±×¸¦ Ãß°¡Çϸé ù¹ø° Çȼ¿ÀÎ ÆĶõ»öÀ» COLOR_WINDOW, Áï ½Ã½ºÅÛ¿¡ Á¤ÀǵǾî ÀÖ´Â À©µµ¿ì ¹è°æ»öÀ¸·Î º¯°æÇØ ÁֹǷΠÀÌ »ö»óÀÌ Åõ¸íÇÑ °Íó·³ Ãâ·ÂµÈ´Ù.

Âü°íÇÔ¼ö

LoadIcon, LoadBitmap

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


written by http://www.winapi.co.kr