ArcTo

¿øÇü

BOOL ArcTo( HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect, int nXRadial1, int nYRadial1, int nXRadial2, int nYRadial2 );

MFC ¿øÇü

BOOL CDC::ArcTo( int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4 );

BOOL CDC::ArcTo( LPCRECT lpRect, POINT ptStart, POINT ptEnd );

Àμö

¢ºhdc : DCÀÇ ÇÚµé

¢ºnLeftRect, TopRect, nRightRect, nBottomRect : ¿ÜÁ¢ »ç°¢ÇüÀÇ ¿µ¿ª

¢ºnXStartArc, nYStartArc : ½ÃÀÛÁ¡ÀÇ ÁÂÇ¥

¢ºnXEndArc, nYEndArc : ³¡Á¡ÀÇ ÁÂÇ¥

¸®ÅÏ

¼º°øÇϸé 0ÀÌ ¾Æ´Ñ °ª(TRUE)À» ¸®ÅÏÇÏ°í ½ÇÆÐÇϸé 0À» ¸®ÅÏÇÑ´Ù.

¼³¸í

¿øÁÖ»óÀÇ ÀϺκÐÀÎ ¿øÈ£, Áï ¿øÁÖÀÇ ÀϺκп¡ ÇØ´çÇÏ´Â °î¼± ºÎºÐÀ» ±×¸°´Ù. ÀÌ ÇÔ¼ö´Â ¿ÜÁ¢ »ç°¢ÇüÀ¸·Î ±×¸®°íÀÚ ÇÏ´Â ¿øÈ£ÀÇ Å©±â¸¦ ÁöÁ¤ÇÏ¸ç ½ÃÀÛÁ¡°ú ³¡Á¡À¸·Î ¿øÈ£ÀÇ ¿µ¿ªÀ» ÁöÁ¤ÇÑ´Ù. ¿øÈ£ÀÇ ÁÂÇ¥¸¦ ÁöÁ¤ÇÏ´Â ¹æ½ÄÀº Arc ÇÔ¼ö¿Í µ¿ÀÏÇϹǷΠÀμöÀÇ ÀÚ¼¼ÇÑ Àǹ̿¡ ´ëÇؼ­´Â Arc ÇÔ¼ö¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù. ÀÌ ÇÔ¼ö¿Í Arc ÇÔ¼öÀÇ Â÷ÀÌÁ¡Àº ÇöÀç CP¿¡¼­ ½ÃÀÛÁ¡±îÁö ¼±À» ±ß°í ¿øÈ£¸¦ ±×¸° ÈÄ CP¸¦ ¿øÈ£ÀÇ ³¡Á¡À¸·Î ¿Å°Ü ³õ´Â´Ù´Â Á¡ÀÌ ´Ù¸£´Ù. µû¶ó¼­ ÀÌ ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é ½ÇÁ¦·Î ±×·ÁÁø ¿øÈ£ÀÇ ³¡Á¡(½ÃÀÛ ¼±ºÐ, ³¡ ¼±ºÐ°ú ¿øÈ£ÀÇ ±³Á¡)ÁÂÇ¥·ÎºÎÅÍ ´Ù¸¥ ±×¸®±â¸¦ °è¼ÓÇÒ ¼ö ÀÖ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ¿øÈ£ÀÇ Áß½ÉÁ¡°ú ½ÃÀÛÁ¡À» ¼±ºÐÀ¸·Î ¿¬°áÇÏ°í ³¡Á¡¿¡¼­ºÎÅÍ ¿À¸¥ÂÊÀ¸·Î ¼±ºÐÀ» Çϳª ´õ ±×¸°´Ù.

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

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		MoveToEx(hdc,(200-10)/2,(180-10)/2,NULL);
		ArcTo(hdc,10,10,200,180,200,180,200,10);
		LineTo(hdc,300,30);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

ArcTo ÇÔ¼ö·Î ¿øÈ£¸¦ ±×¸®±â Àü¿¡ MoveToEx·Î CP¸¦ ¿øÈ£ÀÇ Áß½ÉÀ¸·Î À̵¿½ÃÄÑ ³õÀ¸¹Ç·Î ¿øÈ£ÀÇ Á߽ɰú ½ÃÀÛÁ¡ÀÌ ¿¬°áµÇ¸ç ArcTo·Î ¿øÈ£¸¦ ±×¸° ÈÄ LineTo ÇÔ¼ö·Î ¿øÈ£¿¡¼­ À̾îÁö´Â ¼±ºÐÀ» ´õ ±×¸± ¼ö°¡ ÀÖ´Ù.

Âü°íÇÔ¼ö

Arc : ¿øÈ£¸¦ ±×¸®µÇ CP¸¦ À̵¿½ÃÅ°Áö´Â ¾Ê´Â´Ù.

SetArcDirection : ¿øÈ£ÀÇ ¹æÇâÀ» ¼³Á¤ÇÑ´Ù.

Ç÷§Æû

NT ÀÌ»ó, 95/98¿¡¼­´Â Áö¿øÇÏÁö ¾Ê´Â´Ù.

ÂüÁ¶

 


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