¹Ù.Æ®·¡Å· ÅøÆÁ

¾Õ¿¡¼­ ¸¸µç ¿¹Á¦´Â Åø ÅؽºÆ®¸¦ ½ÇÇàÁß¿¡ ÀÓÀÇ·Î º¯°æÇÏ¿´´Âµ¥ ÀÌ ¿¹Á¦ÀÇ °æ¿ìµµ ÅøÆÁ Ãâ·Â ½ÃÁ¡À̳ª Ãâ·Â À§Ä¡´Â ÅøÆÁ ÄÁÆ®·ÑÀÌ ¾Ë¾Æ¼­ °áÁ¤ÇÑ´Ù. Áï ÇÁ·Î±×·¥ÀÌ ÅؽºÆ®¸¸ º¯°æÇÒ »Ó ÅøÆÁ Ãâ·Â ½ÃÁ¡°ú À§Ä¡¿¡ ´ëÇؼ­´Â °ü¿©¸¦ ÇÒ ¼ö ¾ø¾ú´Âµ¥ ±×·¸°Ô ÇÒ ¼öµµ ÀÖ´Ù. Ãâ·Â À§Ä¡³ª ½ÃÁ¡À» ÇÁ·Î±×·¥ÀÌ °áÁ¤ÇÒ ¼ö ÀÖ´Â ÇüÅÂÀÇ ÅøÆÁÀ» Æ®·¡Å· ÅøÆÁÀ̶ó°í Çϸç TTF_TRACK Ç÷¡±×¸¦ ÁÖ¸é Æ®·¡Å· ÅøÆÁÀÌ ¸¸µé¾îÁø´Ù.

ÅøÆÁ ÄÁÆ®·ÑÀº Æ®·¡Å· ÅøÆÁ¿¡ ´ëÇؼ­´Â ¾ðÁ¦ ¾î´À À§Ä¡¿¡ Ãâ·ÂÇÒ °ÍÀΰ¡ ÀüÇô °ü½ÉÀ» °¡ÁöÁö ¾ÊÀ¸¸ç ÇÁ·Î±×·¥ÀÌ ¿øÇÏ´Â ½ÃÁ¡¿¡ ¿øÇÏ´Â °÷¿¡ Ãâ·ÂÇϵµ·Ï ³» ¹ö·ÁµÐ´Ù. µû¶ó¼­ ÀÌ·± ÇüÅÂÀÇ ÅøÆÁÀº ¼­ºêŬ·¡½ÌÀ» ÇÒ ÇÊ¿äµµ ¾ø°í ¸¶¿ì½º ¸Þ½ÃÁö¸¦ ÅøÆÁ ÄÁÆ®·Ñ·Î º¸³»ÁÙ ÇÊ¿äµµ ¾ø´Ù. TTF_TRACK Ç÷¡±×¸¦ ÁöÁ¤Çß´Ù´Â °ÍÀº "³»°¡ ´Ù ¾Ë¾Æ¼­ ÇÒÅ×´Ï ÅøÆÁ ³Ê´Â °¡¸¸È÷ ÀÖ¾î"¶ó´Â ÀÇ»ç Ç¥½ÃÀÌ´Ù.

Æ®·¡Å· ÅøÆÁÀÇ º¸ÀÓ°ú ¼û±èÀº TTM_TRACKACTIVATE ¸Þ½ÃÁö·Î ÁöÁ¤Çϴµ¥ ÀÌ ¸Þ½ÃÁöÀÇ lParam¿¡ ´ë»ó ÅøÀ» ÁöÁ¤ÇÏ°í wParam¿¡ TRUE(º¸ÀÓ) ¶Ç´Â FALSE(¼û±è)¸¦ ÁöÁ¤ÇÑ´Ù. ÅøÆÁÀÇ Ãâ·Â À§Ä¡´Â TTM_TRACKPOSITION ¸Þ½ÃÁö·Î ÁöÁ¤Çϴµ¥ lParamÀÇ ÇÏÀ§ ¿öµå¿¡ xÁÂÇ¥, »óÀ§ ¿öµå¿¡ yÁÂÇ¥¸¦ Àü´ÞÇÏ¸é µÈ´Ù. ÇÁ·Î±×·¥ÀÌ ³»ºÎÀûÀÎ °è»ê¿¡ ÀÇÇØ ÅøÆÁÀ» Ãâ·ÂÇÒ ¶§¶ó°í ÆǴܵǸé ÀÌ µÎ ¸Þ½ÃÁö·Î ÅøÆÁÀÇ À§Ä¡¸¦ ÁöÁ¤ÇÏ°í ÅøÆÁÀ» º¸À̵µ·Ï ¸¸µé¸é µÈ´Ù. ±×·³ Æ®·¡Å· ÅøÆÁÀÇ ÀüÇüÀûÀÎ ¿¹Á¦¸¦ ¸¸µé¾î º¸µµ·Ï ÇÏÀÚ.

 

#include <commctrl.h>

HWND hTip, hBtn;

BOOL gTrackOn=TRUE;

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

INITCOMMONCONTROLSEX iccex;

TOOLINFO ti;

POINT pt;

char Mes[]="¸¶¿ì½º ¿ÞÂÊ ¹öÆ° = ÅøÆÁ º¸ÀÓ/¼û±è";

 

switch(iMessage) {

case WM_CREATE:

    iccex.dwICC=ICC_WIN95_CLASSES;

    iccex.dwSize=sizeof(INITCOMMONCONTROLSEX);

    InitCommonControlsEx(&iccex);

 

    hTip=CreateWindowEx(WS_EX_TOPMOST,TOOLTIPS_CLASS,NULL,0,

       CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,

       hWnd,NULL,g_hInst,NULL);

 

    ti.cbSize=sizeof(TOOLINFO);

    ti.uFlags=TTF_IDISHWND | TTF_TRACK;// | TTF_ABSOLUTE;

    ti.hwnd=hWnd;

    ti.uId=(WPARAM)hWnd;

    ti.lpszText="¸¶¿ì½º¸¦ µû¶ó ´Ù´Ï´Â ÅøÆÁ";

    SendMessage(hTip,TTM_ADDTOOL,0,(LPARAM)(LPTOOLINFO)&ti);

    SendMessage(hTip, TTM_TRACKACTIVATE,(WPARAM)TRUE,(LPARAM)&ti);

    return 0;

case WM_MOUSEMOVE:

    if (gTrackOn) {

       GetCursorPos(&pt);

       SendMessage(hTip,TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(pt.x,pt.y+25));

    }

    return 0;

case WM_LBUTTONDOWN:

    gTrackOn=!gTrackOn;

    ti.cbSize=sizeof(TOOLINFO);

    ti.uFlags=TTF_IDISHWND;

    ti.hwnd=hWnd;

    ti.uId=(WPARAM)hWnd;

    SendMessage(hTip, TTM_TRACKACTIVATE,(WPARAM)gTrackOn,(LPARAM)&ti);

    return 0;

case WM_PAINT:

    hdc=BeginPaint(hWnd, &ps);

    TextOut(hdc,10,10,Mes,lstrlen(Mes));

    EndPaint(hWnd, &ps);

    return 0;

case WM_DESTROY:

    PostQuitMessage(0);

    return 0;

}

return(DefWindowProc(hWnd,iMessage,wParam,lParam));

}

 

½ÇÇàÇØ º¸¸é ÅøÆÁÀÌ Ä¿¼­¸¦ µû¶ó °¡¸ç ¿òÁ÷ÀÏ °ÍÀÌ´Ù. ÅøÆÁÀÇ º¸ÀÓ°ú ¼û±èÀº ¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À¸·Î Åä±ÛÇÑ´Ù.

WM_LBUTTONDOWN¿¡¼­ TTM_TRACKACTIVATE ¸Þ½ÃÁö·Î ÅøÆÁÀÇ Ãâ·Â ¿©ºÎ¸¦ Åä±ÛÇϸç Àü¿ª º¯¼ö gTrackOn º¯¼öµµ °°ÀÌ Åä±Û½ÃŲ´Ù. À§Ä¡ º¯°æÀº WM_MOUSEMOVE ¸Þ½ÃÁö¿¡¼­ ¸¶¿ì½ºÀÇ À§Ä¡°¡ ¹Ù²ð ¶§¸¶´Ù TTM_TRACKPOSITION ¸Þ½ÃÁö¸¦ º¸³» ¼öÇàÇϴµ¥ Ä¿¼­ ¾Æ·¡ 25Çȼ¿ À§Ä¡¿¡ ÅøÆÁÀ» Ãâ·ÂÇÏ¿´´Ù. ´Ü, ºÒÇÊ¿äÇÑ À̵¿ 󸮸¦ ÇÏÁö ¾Ê±â À§ÇØ gTrackOn Àü¿ª º¯¼ö¸¦ ÂüÁ¶ÇÏ°í ÀÖ´Ù.

TTF_ABSOLUTE Ç÷¡±×´Â TTF_TRACK Ç÷¡±×°¡ ÀÖÀ» ¶§¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ Ç÷¡±×¸¦ ÁÖ¸é TTM_TRACKPOSITION ¸Þ½ÃÁö·Î ÁöÁ¤ÇÑ À§Ä¡¿¡ Á¤È®ÇÏ°Ô Ãâ·ÂÇÑ´Ù. ÀÌ Ç÷¡±×¸¦ »ý·«Çϸé Á¤È®ÇÑ À§Ä¡¸¦ »ç¿ëÇÏÁö ¾Ê°í Åø ÁÖº¯¿¡ ÅøÆÁÀÌ À§Ä¡ÇÏ°Ô µÇ¸ç ÅøÆÁ¿¡ ÀÇÇØ ÅøÀÌ °¡·ÁÁöÁö ¾Êµµ·Ï ÇØ ÁØ´Ù. ÀÌ Ç÷¡±×¸¦ »©°í ½ÇÇàÇØ º¸¸é ±× Àǹ̸¦ ±Ý¹æ ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÅøÆÁÀÌ °áÄÚ À©µµ¿ì ¾ÈÀ¸·Î µé¾î¿ÀÁö ¾Ê´Â´Ù.

Æ®·¡Å· ÅøÆÁÀ» TTM_UPDATETIPTEXT ¸Þ½ÃÁö¿Í ÇÔ²² »ç¿ëÇϸé ÇϳªÀÇ ÅøÆÁÀ¸·Î Ãâ·Â ½ÃÁ¡, À§Ä¡, Åø ÅؽºÆ®±îÁö ÇÁ·Î±×·¥ÀÌ ¸¶À½´ë·Î ÇÁ·Î±×·¡¹ÖÇÒ ¼ö ÀÖ´Ù. ÅøÆÁÀ¸·Î º¸¿©ÁÙ Á¤º¸°¡ ¾ÆÁÖ ¸¹´Ù¸é, ¿¹¸¦ µé¾î 100°³°¡ ³Ñ´Â´Ù¸é ÀÌ ÅøµéÀ» ÀÏÀÏÀÌ µî·ÏÇϱâ´Â ¹«Ã´ ±ÍÂúÀº ÀÏÀÌ°í ´õ±¸³ª ½ºÅ©·Ñ½Ã¿¡ ÀÌ ÅøÀÇ ¿µ¿ªÀ» Àç°è»êÇÏ´Â °Íµµ ¸¸¸¸Ä¡ ¾ÊÀº ÀÛ¾÷ÀÌ´Ù. ÀÌ·± °æ¿ì´Â ÅøÆÁ ÄÁÆ®·Ñ¿¡°Ô ÅøÆÁ °ü¸®¸¦ ¸Ã±âÁö ¸»°í ÇÁ·Î±×·¥ÀÌ Åø¿¡ ´ëÇÑ Á¤º¸¸¦ ³»ºÎÀûÀ¸·Î ÀÚü °ü¸®Çϸ鼭 ÅøÆÁÀ» Ãâ·ÂÇÏ¸é ¿ÀÈ÷·Á ´õ Æí¸®ÇÏ´Ù.

´ÙÀ½ ¿¹Á¦´Â Æ®·¡Å· ÅøÆÁÀÇ ±â´ÉÀ» ½ÊºÐ È°¿ëÇÏ¿© È­¸é»ó¿¡ Ãâ·ÂµÈ »ö»ó¿¡ ´ëÇÑ Á¤º¸¸¦ ÅøÆÁÀ¸·Î º¸¿©ÁØ´Ù.

 

#include <commctrl.h>

HWND hTip, hBtn;

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

INITCOMMONCONTROLSEX iccex;

TOOLINFO ti;

COLORREF Col;

static COLORREF OldCol=0xffffffff;

HBRUSH Brush,OldBrush;

int i;

POINT pt;

 

switch(iMessage) {

case WM_CREATE:

    iccex.dwICC=ICC_WIN95_CLASSES;

    iccex.dwSize=sizeof(INITCOMMONCONTROLSEX);

    InitCommonControlsEx(&iccex);

 

    hTip=CreateWindowEx(WS_EX_TOPMOST,TOOLTIPS_CLASS,NULL,0,

       CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,

       hWnd,NULL,g_hInst,NULL);

 

    ti.cbSize=sizeof(TOOLINFO);

    ti.uFlags=TTF_TRACK | TTF_ABSOLUTE;

    ti.hwnd=hWnd;

   ti.uId=0;

    ti.lpszText="dummy";

    SetRect(&ti.rect,0,0,0,0);

    SendMessage(hTip,TTM_ADDTOOL,0,(LPARAM)(LPTOOLINFO)&ti);

    return 0;

case WM_MOUSEMOVE:

    hdc=GetDC(hWnd);

    Col=GetPixel(hdc,LOWORD(lParam),HIWORD(lParam));

    if (Col != OldCol) {

       OldCol=Col;

       ti.cbSize=sizeof(TOOLINFO);

       ti.uFlags=0;

       ti.hwnd=hWnd;

       ti.uId=0;

       if (Col != RGB(255,255,255) && Col != RGB(0,0,0)) {

          for (i=0;i<sizeof(Tools)/sizeof(Tools[0]);i++) {

             if (Col ==   Tools[i].Col) {

                 ti.lpszText=Tools[i].szTip;

                 SendMessage(hTip,TTM_UPDATETIPTEXT,0,(LPARAM)&ti);

                 pt.x=Tools[i].rt.left+Tools[i].xoff;

                 pt.y=Tools[i].rt.top+Tools[i].yoff;

                 ClientToScreen(hWnd,&pt);

                 SendMessage(hTip,TTM_TRACKPOSITION,0,(LPARAM)MAKELPARAM(pt.x,pt.y));

                SendMessage(hTip, TTM_TRACKACTIVATE,(WPARAM)TRUE,(LPARAM)&ti);

                 break;

             }

          }

       } else {

          SendMessage(hTip, TTM_TRACKACTIVATE,(WPARAM)FALSE,(LPARAM)&ti);

       }

    }

    ReleaseDC(hWnd,hdc);

    return 0;

case WM_PAINT:

    hdc=BeginPaint(hWnd, &ps);

    for (i=0;i<sizeof(Tools)/sizeof(Tools[0]);i++) {

       Brush=CreateSolidBrush(Tools[i].Col);

       OldBrush=(HBRUSH)SelectObject(hdc,Brush);

       if (Tools[i].type == 0) {

          Rectangle(hdc,Tools[i].rt.left,Tools[i].rt.top,

             Tools[i].rt.right,Tools[i].rt.bottom);

       } else {

          Ellipse(hdc,Tools[i].rt.left,Tools[i].rt.top,

             Tools[i].rt.right,Tools[i].rt.bottom);

       }

       SelectObject(hdc,OldBrush);

       DeleteObject(Brush);

    }

    EndPaint(hWnd, &ps);

    return 0;

case WM_ACTIVATEAPP:

    if (wParam == FALSE) {

       ti.cbSize=sizeof(TOOLINFO);

       ti.uFlags=0;

       ti.hwnd=hWnd;

       ti.uId=0;

       SendMessage(hTip, TTM_TRACKACTIVATE,(WPARAM)FALSE,(LPARAM)&ti);

    }

    return 0;

case WM_DESTROY:

    PostQuitMessage(0);

    return 0;

}

return(DefWindowProc(hWnd,iMessage,wParam,lParam));

}

 

È­¸é¿¡ ¿ø»ö µµÇüÀ» ¸î°³ ±×·Á ³õ¾ÒÀ¸¸ç µµÇü À§¿¡ Ä¿¼­¸¦ °¡Á®°¡¸é ±× »ö»óÀ» Á¶»çÇؼ­ ÅøÆÁÀ¸·Î º¸¿©ÁØ´Ù.

Tools ¹è¿­Àº ÅøÀÇ À¯Çü°ú À§Ä¡, Åø ÅؽºÆ®, ÅøÆÁÀÇ À§Ä¡ µî¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö´Âµ¥ ÇÁ·Î±×·¥Àº ÀÌ Á¤º¸¸¦ ¹ÙÅÁÀ¸·Î ¾ðÁ¦, ¾î´À À§Ä¡¿¡ ÅøÆÁÀ» Ãâ·ÂÇÒ °ÍÀΰ¡¸¦ °áÁ¤ÇÑ´Ù. ±¸Á¶Ã¼ ¹è¿­À̹ǷΠµµÇüÀ» ´õ ´Ã¸®´Â °ÍÀº ¾ÆÁÖ ½¬¿ì¸ç ¹è¿­ ¿ä¼Ò¸¸ ¿øÇϴ´ë·Î ´Ã·Á ÁÖ¸é µÈ´Ù. ¼³»ç µµÇüÀÌ ¼ö¹é°³°¡ µÇ´õ¶óµµ ÇÁ·Î±×·¥ÀÇ ³í¸®´Â µ¿ÀÏÇÏ´Ù.

WM_CREATE¿¡¼­ ÅøÆÁÀ» µî·ÏÇϴµ¥ TTF_TRACK Ç÷¡±×¸¦ ÁÖ¾úÀ¸¹Ç·Î TTF_SUBCLASS Ç÷¡±×´Â ÁÖÁö ¾Ê¾Æµµ µÈ´Ù. lpszTextµµ ¾îÂ÷ÇÇ ½ÇÇàÁß¿¡ º¯°æÇÒ ¿¹Á¤À̹ǷΠº° Àǹ̰¡ ¾ø°í ÅøÀÇ Ãâ·Â ¿©ºÎµµ ÇÁ·Î±×·¥ÀÌ °áÁ¤ÇϹǷΠÅøÀÇ ¿µ¿ªÀ» ÁöÁ¤ÇÏ´Â rectµµ ¾Æ¹« Àǹ̰¡ ¾ø´Ù. ±×·¡¼­ µî·ÏÇÒ ¶§ ´ëºÎºÐÀÇ ¸â¹öµéÀº ´õ¹Ì°ªÀ» ÁÖ¾ú´Ù.

ÅøÆÁÀÇ Ãâ·Â ½ÃÁ¡°ú À§Ä¡´Â ¸¶¿ì½º°¡ À̵¿ÇÒ ¶§ÀÎ WM_MOUSEMOVE¿¡¼­ °áÁ¤ÇÑ´Ù. ÇöÀç Ä¿¼­ À§Ä¡ÀÇ »ö»ó°ªÀ» Àоî ÀÏ´Ü, Èò»öÀ̳ª °ËÁ¤»öÀÌ ¾Æ´ÑÁö¸¦ º¸´Âµ¥ ÀÌ ¿¹Á¦ÀÇ °æ¿ì Èò»ö, °ËÁ¤»öÀº ÅøÆÁÀÌ Ãâ·ÂµÇÁö ¾Ê¾Æµµ µÇ´Â ¿µ¿ªÀÌ´Ù.

Èò»ö, °ËÁ¤»öÀÌ ¾Æ´Ï¸é Tools ¹è¿­ÀÇ »ö»ó°ú ÀÏÄ¡ÇÏ´Â °ÍÀÌ ÀÖ´ÂÁö Á¶»çÇÏ¿© Tools ¹è¿­ÀÇ À妽º¸¦ °áÁ¤ÇÏ°í ÀÌ À妽º·ÎºÎÅÍ ÅøÆÁÀÇ À§Ä¡, ÅؽºÆ®¸¦ ¾÷µ¥ÀÌÆ®ÇÑ ÈÄ ÅøÆÁÀ» Ãâ·ÂÇÏ¿´´Ù. Èò»öÀ̳ª °ËÁ¤»öÀ̸é Ãâ·ÂµÇ¾î ÀÖ´Â ÅøÆÁÀ» ¼û±ä´Ù. ÀÌ Äڵ忡¼­ OldCol º¯¼ö´Â ¹Ýµå½Ã ÇÊ¿äÇÑ °ÍÀº ¾Æ´Ï³ª °°Àº »ö»ó ³»¿¡¼­ ¿òÁ÷ÀÏ ¶§ ºÒÇÊ¿äÇÑ Ã³¸®¸¦ ÇÏÁö ¾Êµµ·Ï Çϱâ À§ÇÑ ¿ëµµ·Î »ç¿ëÇÏ°í ÀÖ´Ù.

WM_PAINT¿¡¼­´Â Tools ¹è¿­ÀÇ Á¤º¸¿¡ µû¶ó µµÇüÀ» Ãâ·ÂÇÑ´Ù. ÀÌ ¿¹Á¦ÀÇ ÇÙ½ÉÀº ¹Ù·Î Tools ¹è¿­Àε¥ ÀÌ ¹è¿­Àº ÇÁ·Î±×·¥ÀÌ °ü¸®ÇÏ´Â Åø¿¡ ´ëÇÑ ¸ðµç Á¤º¸¸¦ °¡Áø´Ù. ¹è¿­ ¿ä¼Ò´Â ÇϳªÀÇ ¿ÏÀüÇÑ °´Ã¼¸¦ Ç¥ÇöÇϸç Ãâ·Â Á¤º¸, ÅøÆÁ Ãâ·Â ½ÃÁ¡°ú À§Ä¡, ±âŸ ¿î¿µ¿¡ ÇÊ¿äÇÑ ¾î¶² Á¤º¸¶óµµ Æ÷ÇÔÇÒ ¼ö ÀÖ´Ù. ÀÌ ±¸Á¶Ã¼¸¦ ¾î¶»°Ô µðÀÚÀÎÇÏ°í »ç¿ëÇÒ °ÍÀΰ¡´Â ÀÀ¿ëÀÇ ¿µ¿ªÀ̹ǷΠÇÁ·Î±×·¥ÀÇ ¸ñÀû¿¡ µû¶ó À籸¼ºÇØ¾ß ÇÒ °ÍÀÌ´Ù. ÁöµµÀÇ °¢ ÁöÁ¡¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áú ¼öµµ ÀÖ°í ¼³°èµµ¸éÀÇ ¹«¼öÇÑ ºÎÇ°¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áú ¼öµµ ÀÖÀ¸¸ç ¶ÇÇÑ ½Ç½Ã°£À¸·Î Á¤º¸ÀÇ Ã·»è¹× ¼öÁ¤µµ °¡´ÉÇÏ´Ù.

ÀÌ ¿¹Á¦ÀÇ ¶Ç ´Ù¸¥ Áß¿äÇÑ Àǹ̴ »ç°¢ ¿µ¿ªÀÌ ¾Æ´Ñ Åø¿¡ ´ëÇؼ­µµ ÅøÆÁÀ» Á¦°øÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ÅøÆÁ ÄÁÆ®·ÑÀº À©µµ¿ì ¶Ç´Â »ç°¢¿µ¿ª¿¡ ´ëÇؼ­¸¸ ÅøÆÁÀ» °ü¸®ÇÒ ¼ö ÀÖÁö¸¸ Æ®·¡Å· ÅøÆÁÀº ÇÁ·Î±×·¥ÀÇ ÆÇ´Ü¿¡ µû¶ó ÅøÆÁÀ» Ãâ·ÂÇϹǷΠÅøÆÁ ¿µ¿ª¿¡ ´ëÇÑ Á¦ÇÑÀÌ µû·Î ¾ø´Ù. ÀÌ ¿¹Á¦´Â »ö»óÀ¸·Î ÅøÆÁ ¿µ¿ªÀ» ÆǺ°ÇϹǷΠ¿øÀ̳ª ¼¼¸ð³ª ¾î¶² ¸ð¾çÀÌ¶óµµ ÅøÆÁ Ãâ·Â ¿µ¿ªÀ¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖÀ¸¸ç ÀÌ ¿¹Á¦ÀÇ ³ë¶õ»ö ¿øÀÌ ±× ¿¹ÀÌ´Ù. ¸¸¾à ´Ù°¢Çü¿¡ ´ëÇÑ Á¤º¸¸¦ °¡Áö°í ÀÖ´Ù¸é ´Ù°¢Çü ¿µ¿ª¿¡ ÅøÆÁÀ» ´Þ ¼öµµ ÀÖ°í ¸®ÀüÀ» »ç¿ëÇÑ´Ù¸é ÀÌ·ÐÀûÀ¸·Î »ó»óÇÒ ¼ö ÀÖ´Â ¸ðµç ¸ð¾ç¿¡ ´ëÇØ ÅøÆÁÀ» ´Þ ¼ö ÀÖ´Ù.

Æ®·¡Å· ÅøÆÁÀº ÇÁ·Î±×·¥ÀÌ Ãâ·Â À§Ä¡¿Í ½ÃÁ¡À» ÅëÁ¦ÇÒ ¼ö ÀÖ´Â ´ë½Å ÅøÆÁÀ» ¼û±â´Â ÀÛ¾÷µµ ÇÁ·Î±×·¥ÀÌ Á÷Á¢ Ã¥ÀÓÀ» Á®¾ß ÇÑ´Ù. ÅøÆÁÀ» ¼û±â´Â Äڵ带 Á¦´ë·Î ÀÛ¼ºÇÏÁö ¾ÊÀ¸¸é ¿øÄ¡¾Ê´Â ½ÃÁ¡¿¡ ÅøÆÁÀÌ Ãâ·ÂµÇ¾î ÀÖÀ» ¼öµµ ÀÖ´Ù. À§ ¿¹Á¦µµ ÀÌ·± ¸ÍÁ¡À» °¡Áö°í Àִµ¥ ÆĶõ»ö »ç°¢ÇüÀÇ ¿ÞÂÊ ³¡¿¡ Ä¿¼­¸¦ À§Ä¡ÇÑ ÈÄ Àçºü¸£°Ô ¸¶¿ì½º¸¦ ¿ÞÂÊÀ¸·Î À̵¿ÇØ ¹ö¸®¸é ÅøÆÁÀÌ »ç¶óÁöÁö ¾Ê´Â´Ù. Èò»öÀ̳ª °ËÁ¤»ö ¿µ¿ªÀ» °ÅÄ¡Áö ¾Ê°í Ä¿¼­°¡ À©µµ¿ì ¿µ¿ªÀ» ¹þ¾î³ª ¹ö·È±â ¶§¹®¿¡ ÅøÆÁÀ» ¼û±æ ±âȸ¸¦ °¡ÁöÁö ¸øÇÑ °ÍÀÌ´Ù.

ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é ¹°·Ð ¾ÆÁÖ ¸¹Àº ¹æ¹ýµéÀÌ ÀÖ°ÚÁö¸¸ ÀÌ ¿¹Á¦´Â ÀÌ·± 󸮱îÁö´Â ÇÏÁö ¾Ê°í ÀÖ´Ù. Á» º¸±â ½È±â´Â ÇÏÁö¸¸ ÅøÆÁÀÌ ¶° ÀÖ´Ù°í Çؼ­ º° ¹®Á¦´Â ¾ø±â ¶§¹®ÀÌ´Ù. ´Ù¸¸ ÇÁ·Î±×·¥ÀÌ Æ÷Ä¿½º¸¦ ÀÒÀ» ¶§´Â ÅøÆÁÀ» °­Á¦·Î ¼û°Ü Áִ ó¸®´Â ÇØ ÁÖ°í Àִµ¥ WM_ACTIVATEAPP ¸Þ½ÃÁöÀÇ wParamÀ¸·Î FALSE°¡ Àü´ÞµÇ¾úÀ» ¶§, Áï ºñÈ°¼ºÈ­µÉ ¶§ ÅøÆÁÀ» ¼û±âµµ·Ï ÇÏ¿´´Ù. ÀÌ Ã³¸®¸¦ »ý·«Çϸé ÇÁ·Î±×·¥ÀÌ ÃÖ¼ÒÈ­µÇ¾úÀ» ¶§µµ ÅøÆÁÀÌ È¦·Î Ãâ·ÂµÇ¾î ÀÖ´Â ±âÀÌÇÑ »çÅ°¡ ¹ú¾îÁú ¼ö ÀÖ´Ù.