Æ¢¾î ¿À¸£´Â À̹ÌÁö (Hot image)
ÀÎÅÍ³Ý ÀͽºÇ÷η¯ 4.0À» µ¿ÀÛ½ÃÄÑ Åø¹Ù À§·Î ¸¶¿ì½º Ä¿¼¸¦ À̵¿Çϸé, ¸¶¿ì½º Ä¿¼°¡ ´ÜÃß À§·Î À̵¿ÇÒ ¶§ Åø¹ÙÀÇ ´ÜÃß´Â »ý»ýÇÑ »öÀ¸·Î Æ¢¾î ¿À¸¥´Ù. ÀÌ ºñÁÖ¾óÇÑ Çö»óÀÌ Åø¹Ù ÄÁÆ®·ÑÀÇ 'ÇÖ À̹ÌÁö' ±â´ÉÀÌ´Ù.
À§ÀÇ ±×¸²¿¡¼ "ÀúÀå"ÀÇ Åø¹Ù À̹ÌÁö°¡ »öÀÌ ´Ù¸¥ °ÍÀ» È®ÀÎÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
AppWizard´Â ¹öÆ°ÀÇ ¸ð¾çÀ» ³ªÅ¸³»±â À§Çؼ Åø¹Ù ¸®¼Ò½º¸¦ »ç¿ëÇÏ°í, °¢ ¹öÆ°°ú Ä¿¸Çµå ½Äº°ÀÚ¸¦ ¿¬°áÇÑ´Ù. Åø¹Ù ¸®¼Ò½º´Â LoadToolBar()·Î ¿©·¯°³ÀÇ ºñÆ®¸ÊÀ» À̹ÌÁö ¸ñ·ÏÀ¸·Î º¯È¯ÇÑ´Ù. Æ¢¾î ¿À¸£´Â À̹ÌÁö¸¦ Ç¥½ÃÇϱâ À§Çؼ´Â ¿ø·¡ÀÇ Åø¹Ù ¸®¼Ò½º ¿Ü¿¡ ¶Ç ÇϳªÀÇ À̹ÌÁö°¡ ÇÊ¿äÇÏ´Ù. À̸¦ À§ÇØ SetHotImageList() ÇÔ¼ö¸¦ ÀÌ¿ëÇÑ´Ù.
1. À̸¦ ±¸ÇöÇϱâ À§ÇØ MainFrm.cpp ÆÄÀÏÀÇ OnCreate() ÇÔ¼ö¿¡¼ ´ÙÀ½ ±½Àº ±Û¾¾ ºÎºÐÀ» Ãß°¡ÇÑ´Ù.
¸ð¾ç»õ¸¦ À§ÇØ "Åø¹Ù¿¡ ÅøÆÁ ´ë½Å¿¡ ÅؽºÆ® ¶óº§·Î Ç¥½Ã" ºÎºÐÀ» ÂüÁ¶ÇÏ¿© Åø¹Ù¿¡ ¶óº§À» Ãâ·ÂÇϵµ·Ï ÇÏ´Â ºÎºÐÀ» Ãß°¡ÇÏ¿´´Ù.(º¸¶ó»ö ±Û¾¾)
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if
(CFrameWnd::OnCreate(lpCreateStruct) == -1)
return
-1;
if
(!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
|
CBRS_GRIPPER | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed
to create toolbar\n");
return
-1; // fail to create
}
CImageList
img;
if(!img.Create(IDB_MAINFRAME,16,0,RGB(128,128,128)))
{
TRACE0("Failed
to load hot images\n");
return
-1;
}
m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
img.Detach();
if
(!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed
to create status bar\n");
return
-1; // fail to create
}
//
Add Text to each button
for(int
i=0; i<m_wndToolBar.GetCount(); i++) {
UINT
id = m_wndToolBar.GetItemID(i);
CString
s;
if(!s.LoadString(id))
continue;
int
j = s.Find(_T('\n'));
if(j<0)
continue;
s
= s.Right(s.GetLength()-j-1);
m_wndToolBar.SetButtonText(i,
s);
}
//
Adjust sizes to include text
CRect
rect;
m_wndToolBar.GetItemRect(0,
&rect);
m_wndToolBar.SetSizes(rect.Size(),
CSize(16, 15));
//
TODO: Delete these three lines if you don't want the toolbar to
//
be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
return
0;
}
2. res Æú´õ¿¡ ÀÖ´Â Åø¹Ù À̹ÌÁöÀÎ ToolBar.bmp ÆÄÀÏÀ» ToolBar1.bmp ·Î º¹»çÇÏ¿© ID°¡ IDB_MAINFRAME ÀÎ ºñÆ®¸Ê ¸®¼Ò½º·Î import ÇÑ´Ù. ÀÌ À̹ÌÁö°¡ ¸¶¿ì½º ¹öÆ°ÀÌ Åø¹Ù ¹öÆ° À§·Î ¿Ã¶ó ¿ÔÀ» ¶§ ³ªÅ¸³¯ ±×¸²À̹ǷΠÀû´çÈ÷ »öÀ» ¹Ù²Û´Ù. ÇÊ¿äÇÏ´Ù¸é ¿ø·¡ÀÇ Åø¹Ù À̹ÌÁö¸¦ »öÀÌ ¾øµµ·Ï ¸¸µé°í, »õ·Î¿î À̹ÌÁö¸¦ ¿ø·¡´ë·Î »öÀÌ ÀÖµµ·Ï ÇØ µÎ´Â °Íµµ ÁÁÀ» °ÍÀÌ´Ù.
- the end of this article -