DrawText

¿øÇü int DrawText(HDC hDC, LPCTSTR lpString, int nCount, LPRECT lpRect, UINT uFormat);
¿øÇü

virtual int CDC::DrawText( LPCTSTR lpszString, int nCount, LPRECT lpRect, UINT nFormat );
int CDC::DrawText( const CString& str, LPRECT lpRect, UINT nFormat );

Àμö

¢ºhDC:DCÇÚµé

¢ºlpString:Ãâ·ÂÇÒ ¹®ÀÚ¿­. nCount°¡ -1ÀÌ¸é ³Î Á¾·á ¹®ÀÚ¿­À̾î¾ß ÇÑ´Ù.

¢ºnCount:¹®ÀÚ¿­À» ±æÀÌ. -1ÀÏ °æ¿ì ³Î Á¾·á ¹®ÀÚ±îÁö¸¦ ¹®ÀÚ¿­ ±æÀÌ·Î °è»êÇÑ´Ù.

¢ºlpRect:¹®ÀÚ¿­À» Ãâ·ÂÇÒ ½Ã°¢¿µ¿ª

¢ºuFormat:Ãâ·Â ¿É¼Ç.

Ç÷¹±× ¼³¸í
DT_BOTTOM ÅؽºÆ®¸¦ »ç°¢ ¿µ¿ªÀÇ ¹Ù´Ú¿¡ Ãâ·ÂÇÑ´Ù. DT_SINGLELINE Ç÷¹±×°¡ ¼³Á¤µÇ¾î ÀÖÀ» ¶§¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
DT_CALCRECT ¹®ÀÚ¿­À» Ãâ·ÂÇÒ ¼ö ÀÖ´Â »ç°¢ ¿µ¿ªÀ» °è»êÇÑ´Ù. ¹®ÀÚ¿­ÀÌ ¿©·¯ÁÙ·Î µÇ¾î ÀÖÀ¸¸é »ç°¢ ¿µ¿ªÀÇ ¹Ù´Ú(bottom)À» È®ÀåÇÏ¿© ¸ðµç ¹®ÀÚ¿­ÀÌ ´Ù Æ÷ÇԵǵµ·Ï ÇÏ¸ç ¹®ÀÚ¿­ÀÌ ÇÑÁÙ·Î µÇ¾î ÀÖÀ¸¸é »ç°¢ ¿µ¿ªÀÇ ¿À¸¥ÂÊ(right)À» È®ÀåÇÑ´Ù. ÀÌ Ç÷¹±×°¡ ÁÖ¾îÁö¸é ½ÇÁ¦ ¹®ÀÚ¿­Àº Ãâ·ÂµÇÁö ¾Ê°í °è»ê¸¸ ÇØ ÁØ´Ù.
DT_CENTER ¼öÆò Áß¾Ó Á¤·Ä
DT_EDITCONTROL ¸ÖƼ ¶óÀÎ ¿¡µðÆ® ÄÁÆ®·Ñ°ú °°Àº ¹æ½ÄÀ¸·Î ¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù. ¹®ÀÚÀÇ ¼öÆòÆøÀ» °è»êÇÏ´Â ¹æ¹ýÀÌ ¿¡µðÆ® ÄÁÆ®·Ñ°ú µ¿ÀÏÇÏ¸ç ¸¶Áö¸· ÁÙÀÇ ÀϺΰ¡ º¸ÀÌÁö ¾ÊÀ» °æ¿ì Ãâ·ÂÇÏÁö ¾Ê´Â´Ù.
DT_END_ELLIPSIS ¹®ÀÚ¿­ ³¡ÀÌ »ç°¢ ¿µ¿ªÀ» ³ÑÀ» °æ¿ì ¹®ÀÚ¿­Àº ÀÚ¸£°í »ý·« ±âÈ£(...)À» ´ë½Å º¸¿©ÁØ´Ù. ´Ü¾î°¡ À߸± °æ¿ì´Â »ý·« ±âÈ£¸¦ ºÙÀÌÁö ¾Ê´Â´Ù.
DT_EXPANDTABS ÅÇ ¹®ÀÚ¸¦ È®ÀåÇÏ¿© 8¹®ÀÚ ³Êºñ·Î ¸¸µç´Ù.
DT_EXTERNALLEADING ÀϹÝÀûÀ¸·Î ÆùÆ® ³ôÀÌ¿¡ External LeadingÀº Á¦¿ÜµÇ´Âµ¥ ÀÌ Ç÷¹±×°¡ ÁÖ¾îÁö¸é ÆùÆ® ³ôÀÌ¿¡ External LeadingÀ» Æ÷ÇÔ½ÃŲ´Ù.
DT_HIDEPREFIX 2000ÀÌ»ó:&¹®ÀÚ¸¦ ¹«½ÃÇϸç &´ÙÀ½ ¹®ÀÚ¿¡ ¹ØÁÙÀÌ ±×¾îÁöÁö ¾Ê´Â´Ù.
DT_INTERNAL ½Ã½ºÅÛ ÆùÆ®¸¦ »ç¿ëÇÏ¿© ÅؽºÆ® ¸ÞÆ®¸¯À» °è»êÇÑ´Ù.
DT_LEFT ¼öÆò ¿ÞÂÊ Á¤·Ä
DT_MODIFYSTRING ¹®ÀÚ¿­À» Ãâ·ÂµÈ ¸ð¾ç´ë·Î º¯°æÇÑ´Ù. DT_END_ELLIPSIS, DT_PATH_ELLIPSIS Ç÷¹±×¿Í ÇÔ²¾ »ç¿ëµÇ¸ç ±× ¿ÜÀÇ °æ¿ì´Â ¾Æ¹«·± È¿°ú°¡ ¾ø´Ù.
DT_NOCLIP Ŭ¸®ÇξøÀÌ ¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù. ±×·¡¼­ ¹®ÀÚ¿­ÀÌ »ç°¢Çü ¹ÛÀ¸·Î ¹þ¾î³ªµµ ÀÚ¸£Áö ¾Ê°í ±×³É Ãâ·ÂµÈ´Ù.
DT_NOFULLWIDTHCHARBREAK DBCSȯ°æ¿¡¼­ ÀÚµ¿ °³Çà ¹æ¹ýÀ» SBCS¿Í µ¿ÀÏÇÏ°Ô ¼³Á¤ÇÑ´Ù.
DT_NOPREFIX &¹®ÀÚ¸¦ ±×´ë·Î Ãâ·ÂÇÑ´Ù.
DT_PATH_ELLIPSIS ¹®ÀÚ¿­ ³¡ÀÌ »ç°¢ ¿µ¿ªÀ» ³ÑÀ» °æ¿ì ¹®ÀÚ¿­ÀÇ Áß°£À» »ý·« ±âÈ£·Î ¹Ù²Ù¾î »ç°¢ ¿µ¿ª¿¡ ¸Â°Ô Á¶Á¤ÇÑ´Ù. ¹®ÀÚ¿­ ³»ºÎ¿¡ \¹®ÀÚ°¡ ÀÖÀ» °æ¿ì ¸¶Áö¸· \ÀÌÈÄÀÇ ¹®ÀÚ¸¦ ÃÖ´ëÇÑ º¸Á¸ÇØ ÁØ´Ù.
DT_PREFIXONLY 2000ÀÌ»ó:&¹®ÀÚ°¡ ÀÖ´Â À§Ä¡¿¡ ¹ØÁÙ¸¸ Ãâ·ÂÇÑ´Ù. ÅؽºÆ®´Â Ãâ·ÂµÇÁö ¾Ê´Â´Ù.
DT_RIGHT ¼öÆò ¿À¸¥ÂÊ Á¤·Ä
DT_RTLREADING hdc¿¡ ¼±ÅÃµÈ ÆùÆ®°¡ Hebrew ¶Ç´Â Arabic ÆùÆ®ÀÎ °æ¿ì ¿À¸¥ÂÊ¿¡¼­ ¿ÞÂÊÀ¸·Î ¹®ÀÚ¿­À» Ãâ·ÂÇÑ´Ù.
DT_SINGLELINE ¹®ÀÚ¿­À» ¹«Á¶°Ç ÇÑÁٷθ¸ Ãâ·ÂÇÑ´Ù. CR, LFÄڵ尡 À־ °³ÇàµÇÁö ¾Ê´Â´Ù.
DT_TABSTOP ÅÇ Á¤ÁöÁ¡À» ¼³Á¤ÇÑ´Ù. uFormatÀμöÀÇ 8~15ºñÆ®(ÇÏÀ§ ¿öµåÀÇ »óÀ§ ¹ÙÀÌÆ®)°¡ ÅÇ Á¤ÁöÁ¡ ¼³Á¤¿¡ »ç¿ëµÇ¸ç µðÆúÆ®¸¦ 8¹®ÀÚÀÌ´Ù.
DT_TOP ÅؽºÆ®¸¦ »ç°¢ ¿µ¿ªÀÇ À­ÂÊ¿¡ Ãâ·ÂÇÑ´Ù.
DT_VCENTER ¼öÁ÷ Áß¾Ó Á¤·ÄÇÑ´Ù.
DT_WORDBREAK ´Ü¾î°¡ »ç°¢ÇüÀÇ ¿À¸¥ÂÊ º¯¿¡ ´ê¾ÒÀ» °æ¿ì ÀÚµ¿ °³ÇàÇÑ´Ù. CR/LF Á¶ÇÕÀº °­Á¦·Î °³Çà½ÃŲ´Ù.
DT_WORD_ELLIPSIS »ç°¢ ¿µ¿ªÀ» ³ÑÀ» °æ¿ì ´Ü¾î¸¦ ÀÚ¸£°í »ý·« ±âÈ£¸¦ ºÙÀδÙ.

 

¸®ÅÏ Ãâ·ÂÇÑ ÅؽºÆ®ÀÇ ³ôÀÌ°¡ ¸®ÅϵȴÙ. DT_VCENTER³ª DT_BOTTOM Ç÷¹±×°¡ ÁöÁ¤µÇ¾úÀ¸¸é ¸®ÅÏ°ªÀº lpTect->top¿¡¼­ºÎÅÍ ¹Ù´Ú±îÁöÀÇ ¿ÀÇÁ¼Â°ªÀÌ´Ù. ½ÇÆÐÇϸé 0À» ¸®ÅÏÇÑ´Ù.
¼³¸í

¹®ÀÚ¿­À» »ç°¢ ¿µ¿ª ³»ºÎ¿¡ Ãâ·ÂÇÏ¸ç »ç°¢ ¿µ¿ª ¿ÜºÎ·Î´Â Ãâ·ÂÀ» ÇÏÁö ¾Ê´Â´Ù. ´Ü, DT_NOCLIP Ç÷¹±×°¡ ¼³Á¤µÈ °æ¿ì´Â ¿¹¿ÜÀûÀ¸·Î »ç°¢ ¿µ¿ª ¹Ù±ùÀ¸·Îµµ Ãâ·ÂÀ» ÇÒ ¼ö ÀÖ´Ù. DT_SINGLELINE Ç÷¹±×°¡ ¼³Á¤µÈ °æ¿ì¸¦ Á¦¿ÜÇÏ°í ¹®ÀÚ¿­ÀÌ ¿©·¯ÁÙ·Î ±¸¼ºµÈ °ÍÀ¸·Î °£ÁÖÇÑ´Ù. TextOut ÇÔ¼ö¿¡ ºñÇØ ¿©·¯ ÁÙÀ» ÇѲ¨¹ø¿¡ Ãâ·ÂÇÒ ¼ö ÀÖ´Ù.

Ãâ·Â¿¡ »ç¿ëÇÒ ÆùÆ®¿Í ¹®ÀÚ¿­ÀÇ »ö»ó, ¹è°æ »ö»óÀº TextOut ÇÔ¼ö¿Í ¸¶Âù°¡Áö·Î DC¿¡ ¼±ÅÃµÈ ±Û²Ã°ú »ö»ó ¼³Á¤À» µû¸¥´Ù. ±×·¯³ª SetTextAlignÀ¸·Î Á¤·Ä »óŸ¦ º¯°æÇÒ ¼ö´Â ¾øÀ¸¸ç Escapement, OrientationÀÌ 0ÀÌ ¾Æ´Ñ ±Û²Ã, Áï ±â¿ï¾îÁø ±Û²ÃÀº Ãâ·ÂÇÒ ¼ö ¾ø´Ù.

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â DrawText ÇÔ¼ö·Î ±ä ¹®ÀÚ¿­À» »ç°¢ ¿µ¿ª¿¡ ¸ÂÃß¾î Ãâ·ÂÇÑ´Ù.

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hdc;
	PAINTSTRUCT ps;
	char *szText=
		"µ¿Çع°°ú ¹éµÎ»êÀÌ ¸¶¸£°í ´âµµ·Ï ÇÏ´À´ÔÀÌ º¸¿ìÇÏ»ç ¿ì¸®³ª¶ó ¸¸¼¼ "
		"¹«±ÃÈ­ »ïõ¸® È­·Á°­»ê ´ëÇÑ»ç¶÷ ´ëÇÏÀ¸·Î ±æÀÌ º¸ÀüÇϼ¼ "
		"³²»êÀ§ÀÇ Àú ¼Ò³ª¹« ö°©À» µÎ¸¥ µí ¹Ù¶÷¼­¸® ºÒº¯ÇÔÀ» ¿ì¸® ±â»óÀϼ¼ "
		"°¡¿ïÇÏ´Ã °øÈ°Çѵ¥ ³ô°í ±¸¸§¾øÀÌ ¹àÀº ´ÞÀº ¿ì¸® °¡½¿ ÀÏÆí ´Ü½ÉÀϼ¼ "
		"ÀÌ ±â»ó°ú ÀÌ ¸¾À¸·Î Ã漺À» ´ÙÇÏ¿© ±«·Î¿ì³ª Áñ°Å¿ì³ª ³ª¶ó »ç¶ûÇϼ¼ ";
	RECT rt;

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		SetRect(&rt,10,10,400,200);
		DrawText(hdc,szText,-1,&rt,DT_WORDBREAK);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

±ä ¹®ÀÚ¿­À» »ç°¢ ¿µ¿ª ³»ºÎ¿¡¸¸ Ãâ·ÂÇϵµ·Ï Çß´Ù. DT_WORDBREAK Ç÷¹±×¸¦ ÁÖÁö ¾ÊÀ¸¸é ÀÌ ¹®ÀåÀº ÇÑÁÙ·Î ±æ°Ô Ãâ·ÂµÈ´Ù.

Âü°íÇÔ¼ö Textout, DrawTextEx
Ç÷¿Æû 95ÀÌ»ó
ÂüÁ¶  

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