ÇÖ Æ®·¡Å· ±â´ÉÀ̶õ ¸¶¿ì½º°¡ ¹öư À§¿¡ ÀÖÀ» ¶§ ¹öưÀÌ ¼±ÅõǾî ÀÖÀ½À» º¸¿©ÁÖ´Â ±â´ÉÀÌ´Ù. ÇÖ(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¿¡¼ À̹ÌÁö ¸®½ºÆ®¸¦ ÆÄ±«Çϰí ÀÖ´Ù.