Àμö |
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Çü ¹®ÀÚÀÇ °³¼öÀÌ¸ç ³Î Á¾·á ¹®ÀÚ´Â Æ÷ÇÔµÇÁö ¾Ê´Â´Ù. |
¿¹Á¦ |
´ÙÀ½ ¿¹Á¦´Â ÀÏ¹Ý À©µµ¿ìÀÇ Å¸ÀÌƲÀ» Á¶»çÇÏ¿© ÀÛ¾÷ ¿µ¿ª¿¡ Ãâ·ÂÇÑ´Ù. 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
|