Åø¹Ù¿¡ µé¾î°¡´Â ÄÁÆ®·ÑÀº Åë»ó ¹öưÀ̸ç Åø¹Ù´Â ¹öư ÀÌ¿ÜÀÇ ÄÁÆ®·ÑÀº Á÷Á¢ Áö¿øÇÏÁö ¾Ê´Â´Ù. ÇÏÁö¸¸ Åø¹Ù¿¡ ´Ù¸¥ ÄÁÆ®·ÑÀ» ²À ³Ö°í ½Í´Ù¸é ¾à°£ÀÇ Æí¹ýÀ» »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. Åø¹Ù´Â ³ôÀ̰¡ Á¦ÇѵǾî Àֱ⠶§¹®¿¡ ¸®½ºÆ® ¹Ú½º³ª Æ®¸®ºä °°Àº Å« ÄÁÆ®·ÑÀº ³ÖÀ» ¼ö°¡ ¾øÀ¸¸ç Ǫ½¬ ¹öưÀ̳ª üũ, ¶óµð¿À ¹öư µîÀº ÀÌ¹Ì Åø ¹Ù°¡ Áö¿øÇϰí ÀÖÀ¸¹Ç·Î ³ÖÀ» Çʿ䰡 ¾ø´Ù. °á±¹ Çö½ÇÀûÀ¸·Î Åø¹Ù¿¡ ³ÖÀ» ¼ö ÀÖ´Â ÄÁÆ®·ÑÀº ¿¡µðÆ® ¾Æ´Ï¸é ÄÞº¸ ¹Ú½º Á¤µµÀÇ ³ôÀ̰¡ ³·Àº ÄÁÆ®·Ñ¿¡ ±¹ÇѵȴÙ.
¿©±â¼´Â ¿¡µðÆ®¸¦ Åø¹Ù¿¡ ³Ö´Â ¿¹Á¦¸¦ ¸¸µé¾î º¸µÇ ´Ù¸¥ ÄÁÆ®·Ñµéµµ ¹æ¹ýÀº µ¿ÀÏÇÏ´Ù. ¹æ¹ýÀº ÀǿܷΠ°£´ÜÇѵ¥ Åø¹Ùµµ À©µµ¿ìÀ̹ǷΠÀÌ À©µµ¿ìÀÇ Â÷Àϵå·Î ¿¡µðÆ®¸¦ »ý¼ºÇϱ⸸ ÇÏ¸é µÈ´Ù. À̶§ µÎ °¡Áö ¹®Á¦Á¡ÀÌ Àִµ¥ ù°´Â ¿¡µðÆ®°¡ º¸³»´Â ÅëÁö ¸Þ½ÃÁö¸¦ ¸ÞÀÎ À©µµ¿ì°¡ ¹Þ´Â °ÍÀÌ ¾Æ´Ï¶ó Åø¹Ù°¡ ¹Þ´Â´Ù´Â Á¡ÀÌ´Ù. ¿Ö³ÄÇÏ¸é ¿¡µðÆ®¸¦ Åø¹ÙÀÇ Â÷Àϵå·Î »ý¼ºÇ߱⠶§¹®ÀÌ´Ù.
ÅëÁö ¸Þ½ÃÁö¸¦ ¸ÞÀÎ À©µµ¿ì°¡ ¹ÞÀ¸·Á¸é °øÅë ÄÁÆ®·Ñ ¶óÀ̺귯¸®¿¡ ÀÖ´Â Åø¹ÙÀÇ À©µµ¿ì ÇÁ·Î½ÃÀú¸¦ ¼ºê Ŭ·¡½ÌÇÏ¿© Åø¹Ù°¡ ÅëÁö ¸Þ½ÃÁö¸¦ ¸ÕÀú ¹Þ¾Æ¼ ´Ù½Ã ºÎ¸ð À©µµ¿ì¿¡°Ô Àü´ÞÇØ ÁÖ¸é µÈ´Ù. ±×·¯³ª ÀÌ ¹æ¹ýÀº ³Ê¹« ±ÍÂú°í ¾î·Æ´Ù. Á» ´õ °£´ÜÇÑ ¹æ¹ýÀº ¿¡µðÆ®¸¦ ¸ÞÀÎ À©µµ¿ìÀÇ Â÷Àϵå·Î ¸¸µç ÈÄ SetParent ÇÔ¼ö·Î ºÎ¸ð¸¸ Åø ¹Ù·Î ¹Ù²ã ÁÖ´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô µÇ¸é ¿¡µðÆ®´Â Åø¹ÙÀÇ ÀÛ¾÷ ¿µ¿ª¿¡ ³ªÅ¸³ª¸é¼µµ ¿À³ÊÀÎ ¸ÞÀÎ À©µµ¿ì¿¡°Ô ÅëÁö ¸Þ½ÃÁö¸¦ º¸³»°Ô µÈ´Ù.
µÎ¹øÂ° ¹®Á¦´Â Åø¹Ù¿¡ ¿¡µðÆ®°¡ µé¾î°¥ °ø°£À» È®º¸ÇÏ´Â °ÍÀÌ´Ù. Åø¹Ù¿¡ ÀÌ¹Ì µé¾î°¡ ÀÖ´Â ¹öưµé°ú À§Ä¡°¡ °ãÃļ´Â ¾ÈµÇ¸ç ¸¶Ä¡ ¿ø·¡ ±× ÀÚ¸®°¡ ÀÚ±â ÀÚ¸®ÀÎ °Í ó·³ ¿¡µðÆ®°¡ ¹èÄ¡µÇ¾î¾ß ÇÑ´Ù. ¿©±âµµ ¾à°£ÀÇ Æí¹ýÀÌ ÇÊ¿äÇѵ¥ ÇÊ¿äÇѸ¸Å ±¸ºÐ ¿©¹éÀ» ¸¸µé°í ÀÌ ±¸ºÐ ¿©¹é ÀÚ¸®¿¡ ¿¡µðÆ®¸¦ ¹èÄ¡ÇÏ¸é µÈ´Ù. ¹öưÀÇ ÆøÀº TB_GETITEMRECT ¸Þ½ÃÁö·Î ½±°Ô ±¸ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ±¸ºÐ ¿©¹éÀÇ ÁÂÇ¥¸¦ ±¸ÇÏ°í ±× ÀÚ¸®¿¡ ¿¡µðÆ®¸¦ ±ôÂʰ°ÀÌ ³¢¿ö ³ÖÀ¸¸é µÈ´Ù.
´ÙÀ½Àº ¿Ï¼ºµÈ ¿¹Á¦ÀÌ´Ù. ¿¡µðÆ® ÄÁÆ®·ÑÀ» Åø ¹öư »çÀÌ¿¡ ¹èÄ¡Çϸç ÅØ½ºÆ®°¡ ÆíÁýµÇ¸é ¸ÞÀÎ À©µµ¿ì°¡ EN_CHANGE ÅëÁö ¸Þ½ÃÁö¸¦ ¹Þ¾Æ ŸÀÌÆ² ¹Ù¿¡ ÅØ½ºÆ®¸¦ Ãâ·ÂÇÑ´Ù.
#include <commctrl.h>
#define ID_TOOLBAR 100
HWND hToolBar;
HWND hEdit;
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
TBBUTTON ToolBtn[7]={
{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},
{200,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}
};
TCHAR szBuf[256];
RECT srt;
switch(iMessage) {
case WM_CREATE:
InitCommonControls();
hToolBar=CreateToolbarEx(hWnd, WS_CHILD | WS_VISIBLE | WS_BORDER,
ID_TOOLBAR, 15, HINST_COMMCTRL, IDB_STD_SMALL_COLOR, ToolBtn, 7,
16,16,16,16,sizeof(TBBUTTON));
SendMessage(hToolBar,TB_GETITEMRECT,3,(LPARAM)&srt);
hEdit=CreateWindow("edit",NULL,WS_CHILD | WS_VISIBLE | WS_BORDER
|ES_AUTOHSCROLL,
srt.left+2,srt.top+1,(srt.right-srt.left-4),(srt.bottom-srt.top-2)
,hWnd,(HMENU)20,g_hInst,NULL);
SetParent(hEdit,hToolBar);
return 0;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case 20:
switch (HIWORD(wParam)) {
case EN_CHANGE:
GetWindowText(hEdit,szBuf,256);
SetWindowText(hWnd,szBuf);
return 0;
}
break;
}
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));
}
ToolBtn ¹è¿¿¡ ±¸ºÐ ¿©¹éÀ» 200Çȼ¿ ÆøÀ¸·Î ¹Ì¸® ¸¸µé¾î µÎ¾ú´Ù. ÀÌ ÆøÀÌ ¹Ù·Î ¿¡µðÆ® ÄÁÆ®·ÑÀÇ ÆøÀÌ µÇ¸ç ¿¡µðÆ®ÀÇ ÆøÀ» ¹Ù²Ù°í ½ÍÀ¸¸é ÀÌ °ªÀ» ¹Ù²Ù¸é µÈ´Ù. Åø¹Ù¸¦ ¸¸µç ÈÄ ±¸ºÐ ¿©¹éÀÇ À§Ä¡¸¦ Á¶»çÇϰí ÀÌ À§Ä¡¿¡ ¿¡µðÆ® ÄÁÆ®·ÑÀ» »ý¼º½ÃÄ×´Ù. À̶§ ºÎ¸ð À©µµ¿ì´Â ¸ÞÀÎ À©µµ¿ìÀÎ »óÅ·Π»ý¼ºÇÏ°í »ý¼º ÈÄ SetParent ÇÔ¼ö·Î ºÎ¸ð¸¦ Åø¹Ù·Î º¯°æÇÑ´Ù. ±×·¯¸é ¿¡µðÆ®´Â ¸ÞÀÎ À©µµ¿ì¿¡°Ô ÅëÁö ¸Þ½ÃÁö¸¦ º¸³»°Ô µÈ´Ù.
¿¡µðÆ®°¡ »ðÀÔµÈ ÀÚ¸®´Â ±¸ºÐ ¿©¹é¿¡ ÀÇÇØ È®º¸µÇ¾î ÀÖ´Â °ø°£À̹ǷΠÀÌ »óÅ¿¡¼ ´Ù¸¥ ¹öưÀ» »ðÀÔÇϰųª »èÁ¦ÇÏ´õ¶óµµ ¿¡µðÆ®ÀÇ À§Ä¡¸¦ ÀçÁ¶Á¤ÇØÁÙ ÇÊ¿ä´Â ¾ø´Ù. ÄÞº¸ ¹Ú½º³ª ±âŸ ´Ù¸¥ ÄÁÆ®·Ñµµ µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î Åø ¹Ù¿¡ ³ÖÀ» ¼ö ÀÖ´Ù.