Åø¹ÙÀÇ Ä÷³¼ö Á¤Çϱâ
ÀÌ ³»¿ëÀº 'µû¶óÇØ º¸¼¼¿ä Visual C++ 6'¿¡¼ Âü°íÇÑ ³»¿ëÀÔ´Ï´Ù.
À§ÀÇ ±×¸²¿¡¼ º¸µí ¿ÞÂÊÀÇ Åø¹Ù´Â ¼¼·Î·Î 2ÁÙ·Î ±¸¼ºµÇ¾î ÀÖ´Ù.
Åø¹Ù¸¦ ÀÌ·¸°Ô ±¸¼ºÇϱâ À§Çؼ ´ÙÀ½°ú °°ÀÌ ÀÛ¾÷ÇÑ´Ù.
1. »õ·Î¿î Ŭ·¡½º·Î CToolBar Ŭ·¡½º¿¡¼ ÆÄ»ýµÈ CMyToolBar Ŭ·¡½º¸¦ ¸¸µç´Ù.
Ŭ·¡½º À§Àúµå¿¡¼´Â Base Class·Î CToolBar¸¦ Áö¿øÇÏÁö ¾Ê±â ¶§¹®¿¡ Áö¿øµÇ´Â CToolBarCtrlÀ» Base Class ·Î ¸¸µç ´ÙÀ½, CToolBarCtrlÀ» ¸ðµÎ CToolBar·Î °íÄ£´Ù.
2. CMyToolBarÀÇ ¸â¹öº¯¼ö·Î ´ÙÀ½°ú °°ÀÌ SetColumns() ÇÔ¼ö¸¦ Ãß°¡ÇÑ´Ù.
void CMyToolBar::SetColumns(UINT nColumn)
{
int
nCount = GetToolBarCtrl().GetButtonCount();
for(int
i=0; i<nCount; i++) {
UINT
nStyle = TBBS_CHECKGROUP;
BOOL
bWrap = (((i+1) % nColumn) == 0);
if(bWrap)
nStyle
|= TBBS_WRAPPED;
else
nStyle
&= ~ TBBS_WRAPPED;
SetButtonStyle(i,
nStyle);
}
Invalidate();
GetParentFrame()->RecalcLayout();
}
3. MainFrm.h ÆÄÀÏ¿¡ »õ·Î ¸¸µç Åø¹Ù Ŭ·¡½º¸¦ »ç¿ëÇϱâ À§ÇØ Çì´õÆÄÀÏÀ» ÀÎŬ·çµå ÇÑ´Ù.
#include "MyToolBar.h"
4. »õ·Î ¸¸µç CMyToolBarÀÇ Çì´õÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ MainFrm.h ÆÄÀÏ¿¡ Ãß°¡ÇÑ´Ù.
protected: // control bar embedded members
CStatusBar
m_wndStatusBar;
CToolBar
m_wndToolBar;
CMyToolBar
m_wndMyToolBar;
5. MainFrm.cpp ÆÄÀÏ¿¡ ´ÙÀ½ ±½Àº ±Û¾¾ºÎºÐÀ» Ãß°¡ÇÑ´Ù.
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_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed
to create toolbar\n");
return
-1; // fail to create
}
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
}
if(!m_wndMyToolBar.Create(this,
WS_CHILD|WS_VISIBLE|CBRS_SIZE_FIXED|
CBRS_LEFT|CBRS_TOOLTIPS|CBRS_FLYBY
, IDR_TOOLBAR1)
||
!m_wndMyToolBar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed
to create toolbar\n");
return
-1;
}
m_wndMyToolBar.SetColumns(2);
//
TODO: Delete these three lines if you don't want the toolbar to
//
be dockable
m_wndMyToolBar.EnableDocking(CBRS_ALIGN_LEFT
| CBRS_ALIGN_RIGHT);
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
// ±âÁ¸ÀÇ Åø¹Ù¸¦
¾ø¾Ø´Ù¸é ÀÌ ºÎºÐµµ ´ÙÀ½Ã³·³ °íÃÄ¾ß ÇÔ
//
EnableDocking(CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT);
DockControlBar(&m_wndToolBar);
DockControlBar(&m_wndMyToolBar);
return 0;
}
- the end of this article -