¸¶. Ç¥ÁØ ºñÆ®¸Ê »ç¿ëÇϱâ

Åø ¹Ù¸¦ ¸¸µå·Á¸é ¸ÕÀú Åø ¹öÆ°¿¡ Ç¥½ÃÇÒ ºñÆ®¸ÊºÎÅÍ ¸¸µé¾î¾ß ÇÑ´Ù. ÅؽºÆ®¸¸À¸·Îµµ Åø¹Ù¸¦ ¸¸µé ¼ö ÀÖÁö¸¸ ¹«Ã´ ½ä··Çϱ⠶§¹®¿¡ ±×·± Åø¹Ù¸¦ ¸¸µå´Â °æ¿ì´Â ¹«Ã´ µå¹°¸ç ´ëºÎºÐ ¿¹»Û À̹ÌÁö¸¦ ±×·Á ³Ö´Â´Ù. ±×·±µ¥ »ç½Ç Åø ¹Ù¿¡ µé¾î°¡´Â ¹öÆ°µéÀº °ÅÀÇ ´ëºÎºÐ »õÆÄÀÏ, ¿­±â, ÀúÀå, À߶󳻱â, º¹»ç, ºÙÀ̱⠵îÀÇ ¼ø¼­´ë·Î µÇ¾î ÀÖ´Ù.

ÀÌ·± Åø¹ÙÀÇ ±¸¼ºÀº °ÅÀÇ Ç¥ÁØÈ­µÈ °ÍÀÌ°í »ç¿ëÀڵ鵵 Åø¹Ù¿¡´Â ´ç¿¬È÷ ÀÌ·± ¸í·ÉµéÀÌ Àֱ⸦ ±â´ëÇÑ´Ù. ÀÌ·± ÀϹÝÀûÀÎ ¹öÆ°Àº ´©°¡ ¸¸µé¾îµµ °ÅÀÇ ºñ½ÁÇÑ ¸ð¾çÀ» °¡Áö¸ç ¸Å¹ø ¸¸µé·Á¸é ¾ÆÁÖ ±ÍÂúÀºµ¥ ´©±º°¡°¡ Çѹø¸¸ Àß ¸¸µé¾î ³õÀ¸¸é ¸ðµÎ°¡ ÆíÇÏ°Ô ¾µ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

±×·¡¼­ °øÅë ÄÁÆ®·Ñ ¶óÀ̺귯¸®´Â ¾Æ¿¹ DLL¿¡ ÀÌ·± ÀÚÁÖ »ç¿ëÇÏ´Â ºñÆ®¸ÊµéÀ» ¹Ì¸® ¸¸µé¾î¼­ Á¦°øÇϴµ¥ ÀÌ ºñÆ®¸ÊÀ» Ç¥ÁØ ºñÆ®¸ÊÀ̶ó°í ÇÑ´Ù. Á¾·ù¿Í Å©±âº°·Î ¸ðµÎ ¿©¼¸°³ÀÇ ºñÆ®¸ÊÀÌ Á¦°øµÇ¸ç °¢ ºñÆ®¸Ê¾È¿¡´Â ´ÙÀ½°ú °°Àº À̹ÌÁöµéÀÌ ÀÛ¼ºµÇ¾î ÀÖ´Ù. °¢ À̹ÌÁö°¡ ¾î¶² ¸ð¾çÀ¸·Î ¸¸µé¾îÁ® ÀÖ´ÂÁö´Â Á÷Á¢ Åø¹Ù¿¡ ³Ö¾î º¸¸é ¾Ë ¼ö ÀÖ°ÚÁö¸¸ À̸§¸¸À¸·Îµµ ±× ¸ð¾çÀº ½±°Ô À¯Ãß°¡ °¡´ÉÇÏ´Ù.

 

ºñÆ®¸Ê

À̹ÌÁö

IDB_HLIST_LARGE_COLOR

IDB_HLIST_SMALL_COLOR

HIST_ADDTOFAVORITES

HIST_BACK

HIST_FAVORITES

HIST_FORWARD

HIST_VIEWTREE

IDB_STD_LARGE_COLOR

IDB_STD_SMALL_COLOR

STD_COPY

STD_CUT

STD_DELETE

STD_FILENEW

STD_FILEOPEN

STD_FILESAVE

STD_FIND

STD_HELP

STD_PASTE

STD_PRINT

STD_PRINTPRE

STD_PROPERTIES

STD_REDOW

STD_REPLACE

STD_UNDO

IDB_VIEW_LARGE_COLOR

IDB_VIEW_SMALL_COLOR

VIEW_DETAILS

VIEW_LARGETICONS

VIEW_LIST

VIEW_NETCONNECT

VIEW_NETDISCONNECT

VIEW_NEWFOLDER

VIEW_PARENTFOLDER

VIEW_SMALLICONS

VIEW_SORTDATE

VIEW_SORTNAME

VIEW_SORTSIZE

VIEW_SORTTYPE

 

ÀÌ Ç¥ÁØ À̹ÌÁö¸¦ »ç¿ëÇÏ°í ½ÍÀ¸¸é CreateToolBarEx ÇÔ¼öÀÇ hInstance Àμö¿¡ HINST_COMMCTRL°ªÀ» ÁÖ°í ºñÆ®¸Ê À̸§À» ÁöÁ¤ÇØ ÁÖ¸é µÈ´Ù. ¹°·Ð TBBUTTON ±¸Á¶Ã¼ÀÇ iBitmap ¸â¹ö¿¡´Â ÀÌ ºñÆ®¸Ê¿¡ µé¾î ÀÖ´Â À̹ÌÁöµéÀ» ±â·ÏÇØ ÁÖ¾î¾ß ÇÑ´Ù. ´ÙÀ½ ¿¹Á¦´Â ÀÌ·± ¹æ¹ýÀ¸·Î ¸®¼Ò½º ¾øÀÌ Åø ¹Ù¸¦ ¸¸µç °ÍÀÌ´Ù.

 

#include <commctrl.h>

#define ID_TOOLBAR 100

HWND hToolBar;

BOOL bBig;

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

{

   HDC hdc;

   PAINTSTRUCT ps;

   TCHAR Mes[]="¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£¸é ¹öÆ°ÀÇ Å©±â°¡ ¹Ù²ò´Ï´Ù.";

   TBBUTTON ToolBtn[20]={

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

      {STD_FILEOPEN,11,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {STD_FILESAVE,12,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {4,0,0,TBSTYLE_SEP,0,0,0,0},

      {STD_CUT,13,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {STD_COPY,14,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {STD_PASTE,15,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {STD_DELETE,16,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {4,0,0,TBSTYLE_SEP,0,0,0,0},

      {STD_UNDO,17,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {STD_REDOW,18,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {4,0,0,TBSTYLE_SEP,0,0,0,0},

      {STD_PRINT,19,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {STD_PRINTPRE,20,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {4,0,0,TBSTYLE_SEP,0,0,0,0},

      {STD_FIND,21,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {STD_REPLACE,22,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {STD_PROPERTIES,23,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0},

      {4,0,0,TBSTYLE_SEP,0,0,0,0},

      {STD_HELP,24,TBSTATE_ENABLED,TBSTYLE_BUTTON,0,0,0,0}

   };

 

   switch(iMessage) {

   case WM_CREATE:

      hWndMain=hWnd;

      InitCommonControls();

      bBig=FALSE;

      hToolBar=CreateToolbarEx(hWndMain, WS_CHILD | WS_VISIBLE | WS_BORDER,

          ID_TOOLBAR, 15, HINST_COMMCTRL, IDB_STD_SMALL_COLOR, ToolBtn, 20,

          16,16,16,16,sizeof(TBBUTTON));

      return 0;

   case WM_LBUTTONDOWN:

      TBREPLACEBITMAP rb;

      int bx,by;

      bBig=!bBig;

      rb.hInstOld=rb.hInstNew=HINST_COMMCTRL;

      if (bBig) {

          rb.nIDOld=IDB_STD_SMALL_COLOR;

          rb.nIDNew=IDB_STD_LARGE_COLOR;

          bx=24;by=23;

      } else {

          rb.nIDOld=IDB_STD_LARGE_COLOR;

          rb.nIDNew=IDB_STD_SMALL_COLOR;

          bx=16;by=15;

      }

      rb.nButtons=15;

 

      SendMessage(hToolBar,TB_REPLACEBITMAP,0,(LPARAM)&rb);

      SendMessage(hToolBar,TB_SETBITMAPSIZE,0,(LPARAM)MAKELONG(bx,by));

      SendMessage(hToolBar,TB_AUTOSIZE,0,0);

      return 0;

   case WM_PAINT:

      hdc=BeginPaint(hWnd, &ps);

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

      EndPaint(hWnd, &ps);

      return 0;

   case WM_SIZE:

      SendMessage(hToolBar,TB_AUTOSIZE,0,0);

      return 0;

   case WM_DESTROY:

      PostQuitMessage(0);

      return 0;

   }

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

}

 

WM_CREATE¿¡¼­ Åø ¹Ù¸¦ ¸¸µå´Âµ¥ HINST_COMMCTRL ÀνºÅϽºÀÇ IDB_STD_SMALL_COLOR ºñÆ®¸ÊÀ» »ç¿ëÇÏ°í ÀÖ´Ù. ToolBtn ¹è¿­¿¡´Â ÀÌ ºñÆ®¸Ê¿¡ µé¾î ÀÖ´Â À̹ÌÁöÀÇ À妽ºµéÀÌ ±âÀԵǾî ÀÖ´Ù. ½ÇÇàÇØ º¸¸é ´ÙÀ½°ú °°Àº Åø¹Ù°¡ ³ªÅ¸³¯ °ÍÀÌ´Ù.

ÈçÈ÷ ¸¹ÀÌ º¸´Â ÀϹÝÀûÀÎ ¸ð¾çÀÇ Åø¹ÙÀε¥ ºñÆ®¸ÊÀ» ¸¸µéÁö ¾Ê°íµµ ÀÌ·± Àß ¸¸µé¾îÁø À̹ÌÁö¸¦ ¾µ ¼ö ÀÖ´Ù´Â °ÍÀº Âü ¸ÚÁø ÀÏÀÌ´Ù. ¹°·Ð Ç¥ÁØ À̹ÌÁö¿¡ ¿ì¸®°¡ ÇÊ¿ä·Î ÇÏ´Â ¸ðµç ºñÆ®¸ÊÀÌ ´Ù µé¾î ÀÖ´Â °ÍÀº ¾Æ´ÏÁö¸¸ ¸»ÀÌ´Ù. ¸¸¾à Ç¥ÁØ À̹ÌÁö¿Í Á÷Á¢ ¸¸µç À̹ÌÁö¸¦ °°ÀÌ ¾²°í ½Í´Ù¸é °¢ ¹öÆ°À» °³º°ÀûÀ¸·Î Ãß°¡ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ºñÆ®¸Êº°·Î TBBUTTONS ±¸Á¶Ã¼ ¹è¿­À» µû·Î ¸¸µé°í TB_ADDBUTTONS ¸Þ½ÃÁö¸¦ ¿©·¯ ¹ø º¸³» ÁÖ¸é µÈ´Ù.

¸¶¿ì½º ¿ÞÂÊ ¹öÆ°À» ´©¸£¸é Å« À̹ÌÁö·Î ¹Ù²Ù¾î ÁÖµµ·Ï Çß´Ù. ¾îÂ÷ÇÇ °øÂ¥·Î ¾µ ¼ö ÀÖ´Â ºñÆ®¸ÊÀ̹ǷΠū À̹ÌÁöµµ »ç¿ëÇØ º¸µµ·Ï ÇÏÀÚ. ºñÆ®¸ÊÀ» ¹Ù²Ü ¶§´Â TBREPLACEBITMAP ±¸Á¶Ã¼¿¡ º¯°æÇÏ°íÀÚ ÇÏ´Â ºñÆ®¸ÊÀ» °¡Áø ÀνºÅϽº ÇÚµé°ú ºñÆ®¸Ê ID¸¦ ´ëÀÔÇÑ ÈÄ TB_REPLACEBITMAP ¸Þ½ÃÁö¸¦ º¸³½´Ù. ÀÌ ¸Þ½ÃÁö¸¦ º¸³½ ÈÄ TB_SETBITMAPSIZE ¸Þ½ÃÁö¸¦ º¸³» ºñÆ®¸ÊÀÇ Å©±â°¡ º¯°æµÇ¾úÀ½À» ¾Ë·Á ÁÖ°í TB_AUTOSIZE  ¸Þ½ÃÁö·Î Åø¹Ù°¡ Å©±â¸¦ Á¶Á¤ÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÖ¾î¾ß ÇÑ´Ù.