SetROP2

¿øÇü int SetROP2(HDC hdc, int fnDrawMode);
Àμö

¢ºhdc : ±×¸®±â ¸ðµå¸¦ ÁöÁ¤ÇÒ DCÀÇ ÇÚµé

¢ºfnDrawMode : ±×¸®±â ¸ðµå ***) ¿¬»ê ¹æ¹ýÀ» Á¤È®ÇÏ°Ô Á¶»çÇÒ °Í

±×¸®±â ¸ðµå ¼³¸í
R2_BLACK Ç×»ó °ËÁ¤»öÀ¸·Î¸¸ ±×·ÁÁø´Ù.
R2_COPYPEN ÆæÀÇ »ö»óÀ¸·Î¸¸ ±×·ÁÁö¸ç ÀÌ¹Ì ±×·ÁÁ® ÀÖ´Â ±×¸²Àº Áö¿öÁø´Ù.
R2_MASKNOTPEN È­¸é°ú ÆæÀÇ ¿ª»ó»öÀÇ OR Á¶ÇÕ
R2_MASKPEN È­¸é°ú ÆæÀÇ OR Á¶ÇÕ
R2_MASKPENNOT È­¸éÀÇ ¿ª»ó»ö°ú ÆæÀÇ OR Á¶ÇÕ
R2_MERGENOTPEN È­¸é°ú ÆæÀÇ ¿ª»ó»ýÀÇ Á¶ÇÕ
R2_MERGEPEN È­¸é°ú ÆæÀÇ Á¶ÇÕ
R2_MERGEPENNOT È­¸éÀÇ ¿ª»ó»ö°ú ÆæÀÇ Á¶ÇÕ
R2_NOP ¾Æ¹«·± µ¿ÀÛµµ ÇÏÁö ¾Ê´Â´Ù.
R2_NOT È­¸é »ö»óÀÇ ¹ÝÀü»öÀ¸·Î ±×·ÁÁø´Ù.
R2_NOTCOPYPEN ÆæÀÇ ¿ª»ó»öÀ¸·Î ±×·ÁÁø´Ù.
R2_NOTMASKPEN R2_MASKPEN »ö»óÀÇ ¿ª»ó°ª
R2_NOTMERGEPEN R2_MERGEPENÀÇ ¿ª»ó°ª
R2_NOTXORPEN R2_XORPENÀÇ ¿ª»ó°ª
R2_WHITE Ç×»ó Èò»öÀ¸·Î¸¸ ±×·ÁÁø´Ù.
R2_XORPEN È­¸é »ö»ó°ú Ææ »ö»óÀÇ XOR Á¶ÇÕ°ª
¸®ÅÏ ¼º°øÇϸé 0ÀÌ ¾Æ´Ñ °ªÀ» ¸®ÅÏÇÏ¸ç ¿¡·¯ ¹ß»ý½Ã 0À» ¸®ÅÏÇÑ´Ù.
¼³¸í

±×¸®±â ¸ðµå¶õ GDI ÇÔ¼ö°¡ È­¸é¿¡ Ãâ·ÂÀ» ³»º¸³¾ ¶§ È­¸é¿¡ ÀÌ¹Ì Ãâ·ÂµÇ¾î ÀÖ´Â ±×¸²°ú »õ·Î ±×·ÁÁö´Â ±×¸²°úÀÇ °ü°è¸¦ Á¤ÀÇÇÏ´Â °ÍÀÌ´Ù. AND, OR, XOR µî ºñÆ®°£ÀÇ ÀÌÁø ¿¬»ó ¹æ¹ý°ú NOT ¿¬»êÀÇ Á¶ÇÕÀ¸·Î ÁöÁ¤µÈ´Ù.±×¸®±â ¿¬»êÀº ·¡½ºÅÍ µð¹ÙÀ̽º¿¡¸¸ Àû¿ëµÇ¸ç º¤ÅÍ µð¹ÙÀ̽º¿¡´Â Àû¿ëµÇÁö ¾Ê´Â´Ù.

ÀÌ ÇÔ¼ö¸íÀÇ ROP´Â Rater OPerationÀÇ ¾àÀÚÀ̸ç 2´Â È­¸é»ö»ó°ú ÆæÀÇ »ö»ó 2°³¸¦ ÇÇ¿¬»êÀÚ·Î ÃëÇÑ´Ù´Â ¶æÀÌ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â º¹ÀâÇÑ ¸ð¾çÀÇ ¹è°æ(µ¿½É¿ø)»çÀ̸¦ ÀÛÀº ¿øÀÌ ¸¶¿ì½º¸¦ µû¶ó À̵¿ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁØ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	int i;
	static oldx,oldy;
	int x,y;

	switch(iMessage) {
	case WM_MOUSEMOVE:
		hdc=GetDC(hWnd);
		SelectObject(hdc,GetStockObject(NULL_BRUSH));
		SetROP2(hdc,R2_NOT);
		if (oldx != 0)
			Ellipse(hdc,oldx-10, oldy-10,oldx+10,oldy+10);
		x=LOWORD(lParam);
		y=HIWORD(lParam);
		Ellipse(hdc,x-10, y-10,x+10,y+10);
		oldx=x;
		oldy=y;
		ReleaseDC(hWnd,hdc);
		return 0;
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		SelectObject(hdc,GetStockObject(NULL_BRUSH));
		for (i=0;i<300;i+=5)
			Ellipse(hdc,200-i,200-i,200+i,200+i);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

¸¶¿ì½º°¡ À̵¿ÇÒ ¶§¸¶´Ù ÀÛÀº ¿øÀÌ ±×·ÁÁö´Âµ¥ ÀÌ ¶§ R2_NOT ±×¸®±â ¸ðµå¸¦ »ç¿ëÇÏ¿© ¿ø·¡ÀÇ ±×¸²À» º¹±¸Çϸ鼭 À̵¿Çϱ⠶§¹®¿¡ Ç×»ó ¹è°æÀÇ µ¿½É¿øÀÌ Æı«µÇÁö ¾Ê°í ±× ¸ð¾çÀ» À¯ÁöÇÑ´Ù. ¸¸¾à R2_NOT ±×¸®±â ¸ðµå¸¦ »ç¿ëÇÏÁö ¾ÊÀ¸¸é ¸¶¿ì½º°¡ ¿òÁ÷ÀÏ ¶§¸¶´Ù ÀÛÀº ¿øÀÌ ±×·ÁÁö±â ¶§¹®¿¡ ¹è°æÀÇ µ¿½É¿ø ¸ð¾çÀÌ ¿ø·¡ ¸ð¾çÀ» À¯ÁöÇÏÁö ¸øÇÑ´Ù.

Âü°íÇÔ¼ö GetROP2
Ç÷¿Æû95ÀÌ»ó
º»¹®ÂüÁ¶ 

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