WM_GETTEXT

Àμö

wParam : º¹»çµÉ TCHARÇü ¹®ÀÚÀÇ ÃÖ´ë ±æÀÌÀÌ¸ç ³Î Á¾·á ¹®ÀÚµµ Æ÷ÇÔÇØ¾ß ÇÑ´Ù.

lParam : ¹®ÀÚ¿­À» º¹»çÇÒ ¹öÆÛÀÇ ÁÖ¼Ò

¼³¸í

ÀÌ ¸Þ½ÃÁö´Â À©µµ¿ìÀÇ ÅؽºÆ®¸¦ Á¶»çÇϱâ À§ÇØ »ç¿ëµÈ´Ù. ÀÌ ¸Þ½ÃÁö¸¦ ó¸®ÇÏÁö ¾Ê°í DefWindowProcÀ¸·Î º¸³»¸é À©µµ¿ì ÅؽºÆ®¸¦ lParamÀÌ ÁöÁ¤ÇÏ´Â ¹öÆÛ¿¡ º¹»çÇÏ°í º¹»çµÈ ¹®ÀÚ ¼ö¸¦ ¸®ÅÏÇØ ÁØ´Ù. º¸Åë ÄÁÆ®·ÑÀÇ Ä¸¼ÇÀ» ±¸Çϱâ À§ÇØ ÀÌ ¸Þ½ÃÁö¸¦ º¸³»´Âµ¥ ¾î¶² ¹®ÀÚ¿­ÀÌ À©µµ¿ìÀÇ Ä¸¼ÇÀÌ µÇ´Â°¡´Â ÄÁÆ®·Ñ¿¡ µû¶ó ´Ù¸£´Ù.

°¡Àå ÀϹÝÀûÀÎ ¿¹´Â ¿¡µðÆ® ÄÁÆ®·ÑÀε¥ ÆíÁýÁßÀÎ ¹®ÀÚ¿­ÀÌ Á¶»çµÈ´Ù. ¸®Ä¡ ¿¡µðÆ® ÄÁÆ®·Ñµµ ÀÌ ¸Þ½ÃÁö·Î ¹®ÀÚ¿­À» Á¶»çÇÒ ¼ö ÀÖÁö¸¸ ±æÀÌ°¡ 64K¸¦ ³ÑÀ» °æ¿ì´Â EM_STREAMOUT ¸Þ½ÃÁö³ª EM_GETSELTEXT ¸Þ½ÃÁö¸¦ ´ë½Å »ç¿ëÇØ¾ß ÇÑ´Ù. ¿¡µðÆ®¿¡ ÆíÁýÁßÀÎ ¹®ÀÚ¿­Àº ±æÀÌ°¡ ±æ ¼ö Àֱ⠶§¹®¿¡ °íÁ¤µÈ ±æÀÌÀÇ ¹öÆÛ¸¦ »ç¿ëÇÏ´Â °ÍÀº À§ÇèÇÏ¸ç ¹Ýµå½Ã WM_GETTEXTLENGTH ¸Þ½ÃÁö¸¦ º¸³» ÅؽºÆ®ÀÇ ±æÀ̸¦ Á¶»çÇÑ ÈÄ Á¶»çµÈ ±æÀ̸¸Å­ÀÇ ¹öÆÛ¸¦ ÇÒ´çÇؼ­ »ç¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.

ÄÞº¸ ¹Ú½ºÀÇ °æ¿ì ÄÞº¸ ¹Ú½ºÀÇ ¿¡µðÆ® ¶Ç´Â ½ºÅÂƽ ÄÁÆ®·ÑÀÇ ÅؽºÆ®°¡ Á¶»çµÇ¸ç ¹öÆ°ÀÇ °æ¿ì ¹öÆ°ÀÇ À̸§ ¹®ÀÚ¿­ÀÌ Á¶»çµÈ´Ù. ÀÏ¹Ý À©µµ¿ì´Â ŸÀÌƲ ¹Ù¿¡ Àִ ĸ¼ÇÀÌ Á¶»çµÈ´Ù. ¸®½ºÆ® ¹Ú½º Ç׸ñÀÇ ÅؽºÆ®´Â ÀÌ ¸Þ½ÃÁö·Î ¾òÀ» ¼ö ¾øÀ¸¸ç LB_GETTEXT ¸Þ½ÃÁö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

¹®ÀÚ¿­ ½ºÅ¸ÀÏÀÇ ½ºÅÂƽ ÄÁÆ®·ÑÀº ĸ¼ÇÀÌ Á¶»çµÇÁö¸¸ ¾ÆÀÌÄÜ ½ºÅ¸ÀÏÀÎ °æ¿ì´Â ¾ÆÀÌÄÜÀÇ ÇÚµéÀÌ lParamÀÇ Ã¹ 4¹ÙÀÌÆ®¿¡ Á¶»çµÈ´Ù. ´Ü, ¾ÆÀÌÄÜ ¼³Á¤À» À§ÇØ WM_SETTEXT ¸Þ½ÃÁö¸¦ »ç¿ëÇÑ °æ¿ì¿¡¸¸ ÇØ´çµÇ¸ç 2000/XP¿¡¼­´Â ¹®ÀÚ¿­ ½ºÅ¸ÀÏÀÌ ¾Æ´Ñ ½ºÅÂƽÀº ¹«Á¶°Ç 0ÀÌ ¸®ÅϵȴÙ. 2000ÀÌÀü ¹öÀüÀÇ À©µµ¿ìÁî¿¡¼­´Â ÀÌ ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ¿© ºñ ¹®ÀÚ¿­ ½ºÅÂƽ ÄÁÆ®·ÑÀÇ ID¸¦ ±¸ÇÒ ¼ö ÀÖ¾úÀ¸³ª 2000À̻󿡼­´Â ¹Ýµå½Ã GetWindowLong ÇÔ¼ö·Î ÄÁÆ®·ÑÀÇ ID¸¦ ±¸ÇØ¾ß ÇÑ´Ù.

º¸Åë ¸Þ½ÃÁö¸¦ Á÷Á¢ º¸³»´Â °æ¿ì´Â µå¹°¸ç GetWindowText ÇÔ¼ö¸¦ ¸¹ÀÌ »ç¿ëÇϴµ¥ ÀÌ ÇÔ¼ö´Â ÁöÁ¤ÇÑ À©µµ¿ì·Î WM_GETTEXT ¸Þ½ÃÁö¸¦ º¸³» ÅؽºÆ®¸¦ Á¶»çÇÑ´Ù. ´Ü, GetWindowText ÇÔ¼ö´Â ´Ù¸¥ ÇÁ·Î¼¼½ºÀÇ À©µµ¿ì ÅؽºÆ®Æ®´Â Á¶»çÇÏÁö ¸øÇϹǷΠÀ̶§´Â WM_GETTEXT ¸Þ½ÃÁö¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù.

¸®ÅÏ

º¹»çµÈ TCHARÇü ¹®ÀÚÀÇ °³¼öÀÌ¸ç ³Î Á¾·á ¹®ÀÚ´Â Æ÷ÇÔµÇÁö ¾Ê´Â´Ù.

¿¹Á¦

¿¹Á¦ 1

´ÙÀ½ ¿¹Á¦´Â ÀÏ¹Ý À©µµ¿ìÀÇ Å¸ÀÌƲÀ» Á¶»çÇÏ¿© ÀÛ¾÷ ¿µ¿ª¿¡ Ãâ·ÂÇÑ´Ù.

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

	switch(iMessage) {
	case WM_PAINT:
		hdc=BeginPaint(hWnd, &ps);
		len=SendMessage(hWnd,WM_GETTEXTLENGTH,0,0);
		Caption=(TCHAR *)malloc(len+1);
		SendMessage(hWnd,WM_GETTEXT,len+1,(LPARAM)Caption);
		TextOut(hdc,10,10,Caption,lstrlen(Caption));
		free(Caption);
		EndPaint(hWnd, &ps);
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}

ÅؽºÆ®ÀÇ ±æÀ̸¦ ¸ÕÀú Á¶»çÇÑ ÈÄ ÀÌ ±æÀÌ¿¡ ³Î Á¾·á ¹®ÀÚºÐÀ» ´õÇØ ÇÒ´çÇÑ ¹öÆÛ¿¡ ÅؽºÆ®¸¦ Á¶»çÇÏ¿´´Ù. ŸÀÌƲ ¹®ÀÚ¿­À» ±¸ÇÒ ¶§´Â ±»ÀÌ ÀÌ·¸°Ô µ¿ÀûÇÒ´ç±îÁö ÇÒ ÇÊ¿ä¾øÀÌ 256Á¤µµÀÇ ÃæºÐÇÑ ±æÀ̸¦ °¡Áö´Â ¹öÆÛ¸¦ Á¦°øÇصµ ¹«¹æÇÏ´Ù.

Ç÷§Æû

95ÀÌ»ó

ÂüÁ¶

 


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