GetObject

¿øÇü

int GetObject(HGDIOBJ hgdiobj, int cbBuffer, LPVOID lpvObject);

MFC ¿øÇü

int CGdiObject::GetObject( int nCount, LPVOID lpObject ) const;

Àμö

¢ºhgdiobj : Á¶»çÇÏ°íÀÚ ÇÏ´Â GDI ¿ÀºêÁ§Æ®ÀÇ ÇÚµé. ºñÆ®¸Ê, ºê·¯½Ã, ÆÒ, ÆùÆ® µîÀÇ ÇÚµéÀ» ÁØ´Ù.

¢ºcbBuffer : ¹öÆÛ¿¡ ±â·ÏÇÒ Á¤º¸ÀÇ Å©±â. sizeof(lpvObject)°ªÀ» ÁÖ¸é µÈ´Ù.

¢ºlpvObject : ¿ÀºêÁ§Æ®ÀÇ Á¤º¸¸¦ ¸®ÅϹÞÀ» ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅÍ. ÇÚµéÀÇ Å¸ÀÔ¿¡ µû¶ó »ç¿ëµÇ´Â ±¸Á¶Ã¼°¡ ´Þ¶óÁø´Ù. ÀÌ Àμö¸¦ NULL·Î ÁÖ¸é ÇÊ¿äÇÑ ¹öÆÛÀÇ Å©±â¸¦ ¸®ÅÏÇØ ÁØ´Ù.

ÇÚµé

±¸Á¶Ã¼

HBITMAP

BITMAP. ºñÆ®¸ÊÀÇ Æø, ³ôÀÌ, »ö»ó Á¤º¸¸¸ Á¶»çµÇ¹Ç·Î ºñÆ®¸ÊÀÇ ·¡½ºÅÍ µ¥ÀÌÅÍ´Â GetDIBits, GetBitmapBits µîÀÇ ÇÔ¼ö·Î Á¶»çÇØ¾ß ÇÑ´Ù.

CreateDIBSectionÀ¸·Î ¸¸µç HBITMAP

DIBSECTION

HPALETTE

ÆÈ·¹Æ®ÀÇ ¿£Æ®¸® °³¼öÀÇ WORD. ÆÈ·¹Æ®ÀÇ ½ÇÁ¦ Á¤º¸´Â GetPaletteEntries ÇÔ¼ö·Î Á¶»çÇØ¾ß ÇÑ´Ù.

ExtCreatePenÀ¸·Î ¸¸µç HPEN

EXTLOGPEN

HPEN

LOGPEN

HBRUSH

LOGBRUSH

hFONT

LOGFONT
¸®ÅÏ

Á¶»çµÈ Á¤º¸ÀÇ Å©±â¸¦ ¸®ÅÏÇØ ÁØ´Ù. lpvObjectÀμö°¡ NULLÀ̸é ÇÊ¿äÇÑ ¹öÆÛÀÇ Å©±â¸¦ ¸®ÅÏÇÏ¸ç ½ÇÆнà 0À» ¸®ÅÏÇÑ´Ù.

¼³¸í

GDI ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ Á¤º¸¸¦ ±¸ÇÑ´Ù. ¿ÀºêÁ§Æ® ŸÀÔ¿¡ µû¶ó ÀûÀýÇÑ ±¸Á¶Ã¼¸¦ ¼±¾ðÇÏ°í ±× ±¸Á¶Ã¼ÀÇ Æ÷ÀÎÅ͸¦ lpvObject Àμö·Î Àü´ÞÇØ ÁÖ¸é ±¸Á¶Ã¼¿¡ Á¶»çµÈ Á¤º¸¸¦ ä¿ö ÁØ´Ù. ÀÌ Á¤º¸µéÀº ÀϹÝÀûÀ¸·Î ¿ÀºêÁ§Æ®¸¦ »ý¼ºÇÒ ¶§ ÁöÁ¤ÇÑ Á¤º¸¿Í µ¿ÀÏÇÏ´Ù. »ý¼º Á¤º¸¸¦ °¡Áö°í ÀÖÁö ¾Ê°Å³ª ÀÓÀÇÀÇ ¿ÀºêÁ§Æ®¿¡ ´ëÇØ µ¿ÀÛÇÏ´Â ¹ü¿ëÀûÀÎ ÇÔ¼ö¸¦ ÀÛ¼ºÇÒ ¶§´Â ÀÌ ÇÔ¼ö·Î ¿ÀºêÁ§Æ®ÀÇ Á¤º¸¸¦ ½ÇÇàÁß¿¡ Á¶»çÇØ¾ß ÇÑ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦ÀÇ DrawBitmap ÇÔ¼ö´Â Àμö·Î Àü´ÞµÈ hBit ºñÆ®¸ÊÀ» È­¸éÀ¸·Î Ãâ·ÂÇ쵂 ºñÆ®¸Ê Å©±â¸¸Å­¸¸ Ãâ·ÂÇÑ´Ù.

void DrawBitmap(HDC hdc,int x,int y,HBITMAP hBit)
{
	HDC MemDC;
	HBITMAP OldBitmap;
	int bx,by;
	BITMAP bit;

	MemDC=CreateCompatibleDC(hdc);
	OldBitmap=(HBITMAP)SelectObject(MemDC, hBit);

	GetObject(hBit,sizeof(BITMAP),&bit);
	bx=bit.bmWidth;
	by=bit.bmHeight;

	BitBlt(hdc,x,y,bx+x,by+y,MemDC,0,0,SRCCOPY);

	SelectObject(MemDC,OldBitmap);
	DeleteDC(MemDC);
}

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

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		hBit=LoadBitmap(g_hInst, MAKEINTRESOURCE(IDB_BITMAP1));
		DrawBitmap(hdc,10,10,hBit);
		DeleteObject(hBit);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

Àμö·Î Àü´ÞµÇ´Â ÀÓÀÇÀÇ ºñÆ®¸Ê¿¡ ´ëÇØ µ¿ÀÛÇØ¾ß ÇϹǷΠGetObject ÇÔ¼ö·Î ÀÌ ºñÆ®¸Ê ¿ÀºêÁ§Æ®ÀÇ Å©±â¸¦ ½ÇÇàÁß¿¡ Á¶»çÇϵµ·Ï ÇÏ¿´´Ù. BITMAP ±¸Á¶Ã¼¸¦ ¼±¾ðÇÏ°í GetObject·Î Á¤º¸¸¦ Á¶»çÇÑ ÈÄ bmWidth, bmHeight ¸â¹ö¸¦ ÀÐ¾î ºñÆ®¸Ê Å©±â¸¦ ±¸ÇÏ¿´´Ù. µû¶ó¼­ ÀÌ ÇÔ¼ö´Â ¾î¶² Å©±âÀÇ ºñÆ®¸ÊÀÌ¶óµµ ÀÓÀÇÀÇ À§Ä¡¿¡ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.

Âü°íÇÔ¼ö

 

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


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