Â÷. »óŶõ¿¡ ÄÁÆ®·Ñ ³Ö±â

»óŶõÀº Á¤º¸¸¦ º¸¿© ÁÖ±â À§ÇÑ ÀåÄ¡Àε¥ ÁÖ·Î ¹®ÀÚ¿­ Áß½ÉÀÇ Á¤º¸¸¸ º¸¿© ÁØ´Ù. ¿À³Ê µå·Î¿ì ÆÄÆ®¸¦ »ç¿ëÇÏ¸é ±×·¡ÇÈ Á¤º¸¸¦ º¸¿© ÁÙ ¼ö ÀÖÁö¸¸ ºÎ¸ð À©µµ¿ì°¡ Á÷Á¢ ±×·Á ÁÖ¾î¾ß ÇϹǷΠ¹ø°Å·Î¿î ¸éÀÌ ÀÖ´Ù. »óŶõ¿¡ Â÷Àϵå ÄÁÆ®·ÑÀ» »ý¼ºÇϸé Á» ´õ º¹ÀâÇÑ ¸ð¾çÀÇ Á¤º¸¸¦ º¸¿©ÁÙ ¼ö Àִµ¥ ÀÛ¾÷ »óŸ¦ º¸¿©ÁÖ´Â ÇÁ·Î±×·¡½º ÄÁÆ®·ÑÀÌ »óŶõ¿¡ °¡Àå Àß ¾î¿ï¸®´Â ÄÁÆ®·ÑÀÌ´Ù.

¹æ¹ýÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. »óŶõÀÇ Â÷Àϵå·Î ÇÁ·Î±×·¡½º ÄÁÆ®·ÑÀ» ¸¸µé°í ºÎ¸ð À©µµ¿ì´Â ÀÌ ÄÁÆ®·Ñ¿¡ ÀÛ¾÷ ÁøÇà °úÁ¤À» º¸¿© ÁÖ¸é µÈ´Ù. SB_GETRECT ¸Þ½ÃÁö¸¦ »ç¿ëÇÏ¸é ÆÄÆ® ÇϳªÀÇ ¿µ¿ªÀ» ±¸ÇÒ ¼ö Àִµ¥ ÀÌ ¿µ¿ª¿¡ ÇÁ·Î±×·¡½º ÄÁÆ®·ÑÀ» ¸¸µé¸é µÈ´Ù. °³³äÀûÀ¸·Î °£´ÜÇϹǷΠ¿¹Á¦ Äڵ常 º¸¸é ½±°Ô ÀÌÇØ°¡ µÉ °ÍÀÌ´Ù.

 

#include <commctrl.h>

HWND hState;

HWND hProg;

int Pos;

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

{

   HDC hdc;

   PAINTSTRUCT ps;

   int SBPart[3];

   RECT prt;

   TCHAR Mes[]="¸¶¿ì½º ¿ÞÂÊ ¹öưÀ» ´©¸£¸é ÀÛ¾÷À» ½ÃÀÛÇÕ´Ï´Ù";

 

   switch(iMessage) {

   case WM_CREATE:

      InitCommonControls();

      hState=CreateStatusWindow(WS_CHILD | WS_VISIBLE, "", hWnd,0);

      SBPart[0]=200;

      SBPart[1]=400;

      SBPart[2]=-1;

      SendMessage(hState, SB_SETPARTS, 3, (LPARAM)SBPart);

      SendMessage(hState, SB_SETTEXT,0,(LPARAM)"ÀÛ¾÷ ÁøÇà °úÁ¤");

      SendMessage(hState, SB_SETTEXT,1,(LPARAM)"ÀÏ¹Ý »óŶõ");

      return 0;

   case WM_LBUTTONDOWN:

      if (Pos)

          return 0;

      SendMessage(hState,SB_GETRECT,0,(LPARAM)&prt);

      hProg=CreateWindow(PROGRESS_CLASS,NULL,WS_CHILD | PBS_SMOOTH,

          prt.left,prt.top,prt.right-prt.left,prt.bottom-prt.top,

          hState,NULL,g_hInst,NULL);

      Pos=0;

      SendMessage(hProg, PBM_SETRANGE, 0, MAKELPARAM(0,100));

      SendMessage(hProg, PBM_SETPOS, Pos, 0);

      ShowWindow(hProg,SW_SHOW);

      SetTimer(hWnd,0,50,NULL);

      return 0;

   case WM_TIMER:

      if (Pos==100) {

          DestroyWindow(hProg);

          KillTimer(hWnd,0);

          Pos=0;

      } else {

          Pos++;

         SendMessage(hProg, PBM_SETPOS, Pos, 0);

      }

      return 0;

   case WM_PAINT:

      hdc=BeginPaint(hWnd, &ps);

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

      EndPaint(hWnd, &ps);

      return 0;

   case WM_SIZE:

      SendMessage(hState, WM_SIZE, wParam, lParam);

      return 0;

   case WM_DESTROY:

      PostQuitMessage(0);

      return 0;

   }

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

}

 

¼¼ °³ÀÇ ÆÄÆ®¸¦ ¸¸µé¾ú´Ù. Æò¼Ò¿¡´Â ù¹øÂ° ÆÄÆ®¿¡ ¹®ÀÚ¿­À» º¸¿© ÁÖ´Ù°¡ ÀÛ¾÷ÀÌ ½ÃÀ۵Ǹé ÀÌ ¿µ¿ª¿¡ ÇÁ·Î±×·¡½º¸¦ ¸¸µé°í ÀÛ¾÷ ÁøÇà °úÁ¤À» º¸¿© ÁØ´Ù. ¿¹Á¦¿¡¼­´Â ¸¶¿ì½º ¿ÞÂÊ ¹öưÀ» ´©¸£´Â °ÍÀÌ ÀÛ¾÷ ½ÃÀÛÀ» ÀǹÌÇϸç ÀÛ¾÷Àº ŸÀÌ¸Ó ¸Þ½ÃÁö·Î ÁøÇà½ÃÄ×´Ù.

ÀÛ¾÷ÀÌ ¿Ï·áµÇ¸é ÇÁ·Î±×·¡½º´Â »ç¶óÁö°í ´Ù½Ã ÆÄÆ® ¹®ÀÚ¿­ÀÌ º¸ÀÌ°Ô µÈ´Ù. ¹öưÀ̳ª ¿¡µðÆ® µîÀÇ ÄÁÆ®·ÑÀ» ¿µ±¸ÀûÀ¸·Î ¹èÄ¡ÇÏ´Â °Íµµ ¹°·Ð °¡´ÉÇÏ´Ù. ´Ü, ºÎ¸ð À©µµ¿ì°¡ ÅëÁö ¸Þ½ÃÁö¸¦ ¹Þ±â À§Çؼ­´Â Åø¹Ù¿¡¼­ ±×·¨´ø °Íó·³ ÀÏ´Ü ºÎ¸ð À©µµ¿ìÀÇ Â÷Àϵå·Î ÄÁÆ®·ÑÀ» »ý¼ºÇÑ ÈÄ SetParent ÇÔ¼ö·Î »óŶõÀÇ Â÷Àϵ尡 µÇµµ·Ï ÇØ ÁÖ¾î¾ß ÇÑ´Ù.

»óŶõÀº °øÅë ÄÁÆ®·Ñ Áß¿¡´Â ¾ÆÁÖ ´Ù·ç±â ½¬¿î ÄÁÆ®·ÑÀÌ´Ù. ³­À̵µ¿¡ ºñÇØ ÇÁ·Î±×·¥ÀÇ È°¿ë¼ºÀ» ³ôÀ̴µ¥ Å©°Ô ±â¿©ÇÏ¸ç ³ª¸§´ë·Î ÀÀ¿ëÇÒ¸¸ÇÑ °÷ÀÌ ¸¹ÀÌ ÀÖÀ¸¹Ç·Î Àû±ØÀûÀ¸·Î Ȱ¿ëÇØ º¸µµ·Ï ÇÏÀÚ.