»ç. ÇÖ Æ®·¡Å·

ÇÖ Æ®·¡Å· ±â´ÉÀ̶õ ¸¶¿ì½º°¡ ¹öÆ° À§¿¡ ÀÖÀ» ¶§ ¹öÆ°ÀÌ ¼±ÅõǾî ÀÖÀ½À» º¸¿©ÁÖ´Â ±â´ÉÀÌ´Ù. ÇÖ(Hot) »óŶõ ¸¶¿ì½º·Î ÄÁÆ®·ÑÀ» ¼±ÅÃÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ ¼±ÅÃÇϱ⠹ٷΠÁ÷ÀüÀÇ »óȲÀ» ÀǹÌÇÏ¸ç º¸Åë »óÅ¿ʹ ¾à°£ ´Ù¸¥ ¸ð½ÀÀ» °¡Áø´Ù. ±âº»ÀûÀ¸·Î TBSTYLE_FLAT ½ºÅ¸ÀÏÀ» °¡Áö´Â Åø¹Ù´Â ÇÖ Æ®·¡Å· ±â´ÉÀÌ ÀÖÀ¸¸ç ¸¶¿ì½º°¡ ¹öÆ° À§¿¡ ÀÖÀ¸¸é ¹öÆ° ÁÖÀ§¿¡ °æ°è¼±ÀÌ ³ªÅ¸³­´Ù. ÀÌ·± µðÆúÆ® 󸮿ܿ¡ ¾Æ¿¹ À̹ÌÁö ÀÚü¸¦ ¹Ù²Ù°í ½Í´Ù¸é ±×·¸°Ô ÇÒ ¼öµµ ÀÖ´Ù.

ÇÖ »óÅ¿¡¼­ ´Ù¸¥ À̹ÌÁö¸¦ º¸¿© ÁÖµµ·Ï ÇÏ°í ½Í´Ù¸é À̹ÌÁö ¸®½ºÆ®¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. ºñÆ®¸ÊÀ¸·Î´Â ÇÖ »óŸ¦ Ç¥ÇöÇÒ ¼ö ¾ø´Ù. Åø ¹Ù´Â º¸Åë, ÇÖ, »ç¿ë±ÝÁö ¼¼°¡Áö Á¾·ùÀÇ À̹ÌÁö ¸®½ºÆ®¸¦ µî·ÏÇÒ ¼ö ÀÖÀ¸¸ç ¹öÆ°ÀÇ »óÅ¿¡ µû¶ó ´Ù¸¥ ¸ð¾çÀÇ À̹ÌÁö¸¦ º¸¿©ÁÙ ¼ö ÀÖ´Ù. ¸®¼Ò½º¿¡ ´ÙÀ½ ¼¼°¡Áö ºñÆ®¸ÊÀ» Á¤ÀÇÇÑ´Ù.

  

Á¦ÀÏ ¿ÞÂÊÀº º¸Åë »óÅÂ, »¡°£»ö ¹è°æÀº ÇÖ »óÅÂ, °ËÁ¤»ö ¹è°æÀº »ç¿ë ±ÝÁöµÈ »óŸ¦ ³ªÅ¸³½´Ù. À̹ÌÁö¸¦ °£´ÜÇÏ°Ô ¸¸µé±â À§ÇØ »ö»óÀ¸·Î ±¸ºÐÇßÁö¸¸ ¾Æ¿¹ ´Ù¸¥ À̹ÌÁö¸¦ ±×¸± ¼öµµ ÀÖ´Ù. ¿¹¸¦ µé¾î º¸Åë »óÅ¿¡¼­´Â ÀÛÀº µ¸º¸±â, ÇÖ »óÅ¿¡¼­´Â Å« µ¸º¸±â, »ç¿ë ±ÝÁö »óÅ¿¡¼­´Â ±úÁø µ¸º¸±â¸¦ ±×·Á ³Ö´Â´Ù¸é ¾ÆÁÖ º¸±â ÁÁ´Ù. ÄÚµå´Â ´ÙÀ½°ú °°´Ù.

 

#include <commctrl.h>

#include "resource.h"

#define ID_TOOLBAR 100

HWND hToolBar;

HIMAGELIST hNormal, hHot, hDisable;

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

{

   TBBUTTON ToolBtn[3]={

      {0,10,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {1,11,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {2,12,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0}

   };

 

   switch(iMessage) {

   case WM_CREATE:

      InitCommonControls();

      hToolBar=CreateWindow(TOOLBARCLASSNAME,NULL,WS_CHILD | WS_VISIBLE | WS_BORDER

          | TBSTYLE_FLAT,0,0,0,0,

          hWnd,(HMENU)ID_TOOLBAR,g_hInst,NULL);

      SendMessage(hToolBar,TB_BUTTONSTRUCTSIZE,(WPARAM)sizeof(TBBUTTON),0);

 

      hNormal=ImageList_LoadImage(g_hInst, MAKEINTRESOURCE(IDB_NORMAL),

          16, 1, CLR_NONE,IMAGE_BITMAP,0);

      hHot=ImageList_LoadImage(g_hInst, MAKEINTRESOURCE(IDB_HOT),

          16, 1, CLR_NONE,IMAGE_BITMAP,0);

      hDisable=ImageList_LoadImage(g_hInst, MAKEINTRESOURCE(IDB_DISABLE),

          16, 1, CLR_NONE,IMAGE_BITMAP,0);

      SendMessage(hToolBar,TB_SETIMAGELIST,0,(LPARAM)hNormal);

      SendMessage(hToolBar,TB_SETHOTIMAGELIST,0,(LPARAM)hHot);

      SendMessage(hToolBar,TB_SETDISABLEDIMAGELIST,0,(LPARAM)hDisable);

      SendMessage(hToolBar,TB_ADDBUTTONS,(WPARAM)3,(LPARAM)ToolBtn);

      return 0;

   case WM_COMMAND:

      switch (LOWORD(wParam)) {

      case 10:

          SendMessage(hToolBar,TB_SETSTATE,12,MAKELONG(0,0));

          break;

      case 11:

          SendMessage(hToolBar,TB_SETSTATE,12,MAKELONG(TBSTATE_ENABLED,0));

          break;

      case 12:

          MessageBox(hWnd,"¼¼¹ø° ¹öÆ°À» ¼±ÅÃÇß½À´Ï´Ù","¾Ë¸²",MB_OK);

          break;

      }

      return 0;

   case WM_SIZE:

      SendMessage(hToolBar,TB_AUTOSIZE,0,0);

      return 0;

   case WM_DESTROY:

      ImageList_Destroy(hNormal);

      ImageList_Destroy(hHot);

      ImageList_Destroy(hDisable);

      PostQuitMessage(0);

      return 0;

   }

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

}

 

¸ÕÀú CreateWindow ÇÔ¼ö·Î Åø¹Ù ÄÁÆ®·ÑÀ» ¸¸µéµÇ ÇÖ Æ®·¡Å·ÀÌ °¡´ÉÇÏ·Á¸é TBSTYLE_FLAT ½ºÅ¸ÀÏÀ» ¹Ýµå½Ã ÁÖ¾î¾ß ÇÑ´Ù. Åø¹Ù´Â ¹öÆ°ÀÇ À̹ÌÁö·Î ºñÆ®¸ÊÀ̳ª À̹ÌÁö ¸®½ºÆ® µÑ Áß Çϳª¸¦ ¾µ ¼ö Àִµ¥ µÑ ´Ù µ¿½Ã¿¡ »ç¿ëÇÒ ¼ö´Â ¾ø´Ù. µû¶ó¼­ Åø¹Ù »ý¼º°ú ÇÔ²² ºñÆ®¸ÊÀ» µî·ÏÇÏ´Â CreateToolBarEx ÇÔ¼ö·Î Åø¹Ù¸¦ ¸¸µé¾î¼­´Â À̹ÌÁö ¸®½ºÆ®¸¦ »ç¿ëÇÒ ¼ö ¾øÀ¸¸ç ¹Ýµå½Ã CreateWindow ÇÔ¼ö·Î Åø ¹Ù¸¦ »ý¼ºÇØ¾ß ÇÑ´Ù.

ºñÆ®¸ÊÀ¸·ÎºÎÅÍ À̹ÌÁö ¸®½ºÆ®¸¦ »ý¼ºÇÑ ÈÄ TB_SETIMAGELIST µîÀÇ ¸Þ½ÃÁö·Î À̹ÌÁö ¸®½ºÆ®¸¦ Åø¹Ù¿¡ µî·ÏÇÑ´Ù. À̶§ ¾î¶² ¸Þ½ÃÁö·Î À̹ÌÁö ¸®½ºÆ®¸¦ µî·ÏÇϴ°¡¿¡ µû¶ó º¸Åë, ÇÖ, »ç¿ë ±ÝÁö »óÅÂÀÇ À̹ÌÁö°¡ µÈ´Ù. Åø¹Ù´Â ¹öÆ°ÀÇ »óÅ¿¡ µû¶ó ÀûÀýÇÑ À̹ÌÁö¸¦ ÀÚµ¿À¸·Î ¼±ÅÃÇؼ­ »ç¿ëÇÏ°Ô µÈ´Ù. ½ÇÇàÇØ º¸¸é ¸¶¿ì½º°¡ ¹öÆ° À§·Î ¿Ã¶ó°¥ ¶§ ¹öÆ°ÀÇ À̹ÌÁö°¡ »¡°£»öÀ¸·Î º¯ÇÒ °ÍÀÌ´Ù. 1¹ø ¹öÆ°À» ´©¸£¸é 3¹ø ¹öÆ°ÀÌ »ç¿ë±ÝÁöµÇ¸ç 2¹ø ¹öÆ°À» ´©¸£¸é 3¹ø ¹öÆ°ÀÌ »ç¿ë °¡´ÉÇØÁö´Âµ¥ À̶§µµ ÀûÀýÇÑ À̹ÌÁö°¡ Ç¥½ÃµÈ´Ù.

Åø¹Ù¿¡ µî·ÏµÈ À̹ÌÁö ¸®½ºÆ®´Â ÀÚµ¿À¸·Î Æı«µÇÁö ¾ÊÀ¸¹Ç·Î ¹Ýµå½Ã Á÷Á¢ Æı«ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ¿¹Á¦¿¡¼­´Â WM_DESTROY¿¡¼­ À̹ÌÁö ¸®½ºÆ®¸¦ Æı«ÇÏ°í ÀÖ´Ù.