SetTextAlign

¿øÇü UINT SetTextAlign(HDC hdc, UINT fMode);
MFC ¿øÇü UINT CDC::SetTextAlign( UINT nFlags );
Àμö

¢ºhdc:DCÇÚµé

¢ºfMode:Á¤·Ä ¹æ½Ä°ú CP»ç¿ë ¿©ºÎ µîÀÇ Ç÷¡±×¸¦ ÁöÁ¤ÇÑ´Ù. Á¤·Ä ¹æ½ÄÀº ¼öÆò, ¼öÁ÷¿¡ ´ëÇØ °¢°¢ ÇÑ Á¾·ù¸¸ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù.

Ç÷¡±× ¼³¸í
TA_BLASELINE ÅؽºÆ®ÀÇ ±âÁؼ±¿¡ Á¤·Ä
TA_BOTTOM ¼öÁ÷ ÇÏ´Ü Á¤·Ä
TA_TOP ¼öÁ÷ »ó´Ü Á¤·Ä
TA_CENTER ¼öÆò Áß¾Ó Á¤·Ä
TA_LEFT ¼öÆò ¿ÞÂÊ Á¤·Ä
TA_RIGHT ¼öÆò ¿À¸¥ÂÊ Á¤·Ä
TA_NOUPATECP ¹®ÀÚ¿­ÀÌ Ãâ·ÂµÈ ÈÄ CP´Â º¯°æµÇÁö ¾Ê´Â´Ù.
TA_RTLREADING ¹®ÀÚ¿­À» ¿À¸¥ÂÊ¿¡¼­ ¿ÞÂÊÀ¸·Î Ãâ·ÂÇÑ´Ù. ÇÑ±Û À©µµ¿ìÁî¿¡¼­´Â Àǹ̰¡ ¾ø´Ù.
TA_UPDATECP ¹®ÀÚ¿­ Ãâ·Â ÁÂÇ¥ CP¸¦ »ç¿ëÇÏ¸ç ¹®ÀÚ¿­ Ãâ·Â ÈÄ CP¸¦ °»½ÅÇÑ´Ù.

 

¸®ÅÏ ÀÌÀü Á¤·Ä »óŸ¦ ¸®ÅÏÇÑ´Ù.
¼³¸í

TextOut ÇÔ¼ö°¡ ÁöÁ¤ÇÏ´Â ÁÂÇ¥´Â µðÆúÆ®·Î ¹®ÀÚ¿­ Ãâ·Â ¿µ¿ªÀÇ Á»ó´Ü ÁÂÇ¥ÀÌ´Ù. ÀÌ ÇÔ¼ö´Â ¹®ÀÚ¿­ÀÇ Ãâ·Â ¿µ¿ª°ú Ãâ·Â ÁÂÇ¥¿ÍÀÇ °ü°è¸¦ º¯°æÇÔÀ¸·Î½á ¹®ÀÚ¿­ÀÇ Ãâ·Â À§Ä¡¿¡ ¿µÇâÀ» ÁØ´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ¼öÆò Á¤·Ä »óŸ¦ º¯°æÇØ °¡¸ç ¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	char *szText="Text Alignment Sample";

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		// ¿ÞÂÊ Á¤·Ä
		SetTextAlign(hdc,TA_LEFT);
		TextOut(hdc,200,10,szText,lstrlen(szText));

		// Áß¾Ó Á¤·Ä
		SetTextAlign(hdc,TA_CENTER);
		TextOut(hdc,200,40,szText,lstrlen(szText));

		// ¿À¸¥ÂÊ Á¤·Ä
		SetTextAlign(hdc,TA_RIGHT);
		TextOut(hdc,200,70,szText,lstrlen(szText));
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

TextOut ÇÔ¼ö´Â ¼öÆò À§Ä¡¸¦ ¸ðµÎ 200À¸·Î ÁöÁ¤ÇÏ°í ÀÖÁö¸¸ Á¤·Ä Ç÷¹±×¿¡ µû¶ó ¹®ÀÚ¿­ÀÌ Ãâ·ÂµÇ´Â ½ÇÁ¦ À§Ä¡°¡ ´Þ¶óÁø´Ù. ù¹ø° Ãâ·Â¹®Àº 200À» »ç°¢ ¿µ¿ªÀÇ ¿ÞÂÊÀ¸·Î ÀνÄÇÏ¸ç µÎ¹ø° Ãâ·Â¹®Àº 200À» Áß¾ÓÀ¸·Î, ¸¶Áö¸· Ãâ·Â¹®Àº 200À» ¿ÞÂÊÀ¸·Î ÀνÄÇÑ´Ù.

¿¹Á¦ 2

SetTextAlignÀº Á¤·Ä ¹æ¹ý»Ó¸¸ ¾Æ´Ï¶ó CP »ç¿ë ¹æ¹ýµµ ¼³Á¤ÇÑ´Ù. CP(Current Position)´Â ´ÙÀ½ ¹®ÀÚ¿­ÀÌ Ãâ·ÂµÉ À§Ä¡¸¦ °¡¸®Å°¸ç ÃÖÃÊ DC°¡ »ý¼ºµÇ¾úÀ» ¶§´Â (0,0)À¸·Î ÃʱâÈ­µÈ´Ù. SetTextAlign ÇÔ¼ö·Î TA_UPDATECP Ç÷¹±×¸¦ ÁÖ¸é TextOut ÇÔ¼ö´Â Àμö·Î Àü´ÞµÇ´Â ÁÂÇ¥°ªÀ» ¹«½ÃÇÏ°í ÇöÀç CPÀ§Ä¡¿¡ ¹®ÀÚ¿­À» Ãâ·ÂÇÏ¸ç ¹®ÀÚ¿­ Ãâ·Â ÈÄ CP¸¦ ¹®ÀÚ¿­ÀÇ ³¡À¸·Î Àç¼³Á¤ÇÑ´Ù. µû¶ó¼­ CPÀ§Ä¡¿¡ ¹®ÀÚ¿­À» Ãâ·ÂÇÏ¸é ¿¬¼ÓµÈ ´Ü¾î¸¦ °è¼Ó Ãâ·ÂÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ¿¹Á¦´Â ¼¼ ´Ü¾î¸¦ À̾ Ãâ·ÂÇÑ´Ù.

long FAR PASCAL WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;

	switch(iMessage) {
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;

	case WM_PAINT:
		hdc=BeginPaint(hWnd,&ps);
		SetTextAlign(hdc, TA_UPDATECP);
		TextOut(hdc,0,0,"One ",4);
		TextOut(hdc,0,0,"Two ",4);
		TextOut(hdc,0,0,"Three",5);
		EndPaint(hWnd,&ps);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

One, Two, Three ´Ü¾î¸¦ °¢°¢ Ãâ·ÂÇ쵂 ÀÌ ¶§ TextOut ÇÔ¼ö·Î Àü´ÞµÇ´Â Ãâ·Â ÁÂÇ¥´Â ¹«½ÃµÇ¸ç ¹«Á¶°Ç CP À§Ä¡¿¡ ¹®ÀÚ¿­ÀÌ Ãâ·ÂµÈ´Ù. °á°ú´Â ´ÙÀ½°ú °°´Ù.

Âü°íÇÔ¼ö GetTextAlign : ÇöÀç Á¤·Ä »óŸ¦ Á¶»çÇÑ´Ù.
Ç÷¿Æû 95ÀÌ»ó
ÂüÁ¶ 3-2-°¡

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