1. Dialog에 Toolbar를 추가한다.
2. 툴바를 생성한다.
3. 기타 효과를 준다.
[code]
if (!m_Toolbar.CreateEx(this, TBSTYLE_FLAT,
WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_Toolbar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create toolbar\n");
return;
}
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
m_Toolbar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
DWORD dwStyle = m_Toolbar.GetButtonStyle(m_Toolbar.CommandToIndex(IDC_VIEW));
dwStyle |= TBSTYLE_DROPDOWN; // 서브 메뉴를 출력시킨다.
m_Toolbar.SetButtonStyle(m_Toolbar.CommandToIndex(IDC_VIEW), dwStyle);
CImageList imageList;
CBitmap bitmap;
// 기본 상태일 때
bitmap.LoadBitmap(IDB_TOOLBAR1);
imageList.Create(70, 43, ILC_COLOR24|ILC_MASK, 7, 1);
imageList.Add(&bitmap, RGB(255,255,255));
m_Toolbar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
imageList.Detach();
bitmap.Detach();
// 활성화 상태일 때
bitmap.LoadBitmap(IDB_TOOLBAR2);
imageList.Create(70, 43, ILC_COLOR24|ILC_MASK, 7, 1);
imageList.Add(&bitmap, RGB(255,255,255));
m_Toolbar.SendMessage(TB_SETHOTIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
imageList.Detach();
bitmap.Detach();
// 비 활성화 상태일 때
bitmap.LoadBitmap(IDB_TOOLBAR3);
imageList.Create(70, 43, ILC_COLOR24|ILC_MASK, 7, 1);
imageList.Add(&bitmap, RGB(255,255,255));
m_Toolbar.SendMessage(TB_SETDISABLEDIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
imageList.Detach();
bitmap.Detach();
// 4개의 툴바를 비활성화 시킨다.
m_Toolbar.GetToolBarCtrl().EnableButton(IDC_UNCOMPRESS, FALSE);
m_Toolbar.GetToolBarCtrl().EnableButton(IDC_ADD, FALSE);
m_Toolbar.GetToolBarCtrl().EnableButton(IDC_DELETE, FALSE);
m_Toolbar.GetToolBarCtrl().EnableButton(IDC_RENAME, FALSE);[/code]
2. 툴바를 생성한다.
3. 기타 효과를 준다.
[code]
if (!m_Toolbar.CreateEx(this, TBSTYLE_FLAT,
WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS |
CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_Toolbar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create toolbar\n");
return;
}
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
m_Toolbar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
DWORD dwStyle = m_Toolbar.GetButtonStyle(m_Toolbar.CommandToIndex(IDC_VIEW));
dwStyle |= TBSTYLE_DROPDOWN; // 서브 메뉴를 출력시킨다.
m_Toolbar.SetButtonStyle(m_Toolbar.CommandToIndex(IDC_VIEW), dwStyle);
CImageList imageList;
CBitmap bitmap;
// 기본 상태일 때
bitmap.LoadBitmap(IDB_TOOLBAR1);
imageList.Create(70, 43, ILC_COLOR24|ILC_MASK, 7, 1);
imageList.Add(&bitmap, RGB(255,255,255));
m_Toolbar.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
imageList.Detach();
bitmap.Detach();
// 활성화 상태일 때
bitmap.LoadBitmap(IDB_TOOLBAR2);
imageList.Create(70, 43, ILC_COLOR24|ILC_MASK, 7, 1);
imageList.Add(&bitmap, RGB(255,255,255));
m_Toolbar.SendMessage(TB_SETHOTIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
imageList.Detach();
bitmap.Detach();
// 비 활성화 상태일 때
bitmap.LoadBitmap(IDB_TOOLBAR3);
imageList.Create(70, 43, ILC_COLOR24|ILC_MASK, 7, 1);
imageList.Add(&bitmap, RGB(255,255,255));
m_Toolbar.SendMessage(TB_SETDISABLEDIMAGELIST, 0, (LPARAM)imageList.m_hImageList);
imageList.Detach();
bitmap.Detach();
// 4개의 툴바를 비활성화 시킨다.
m_Toolbar.GetToolBarCtrl().EnableButton(IDC_UNCOMPRESS, FALSE);
m_Toolbar.GetToolBarCtrl().EnableButton(IDC_ADD, FALSE);
m_Toolbar.GetToolBarCtrl().EnableButton(IDC_DELETE, FALSE);
m_Toolbar.GetToolBarCtrl().EnableButton(IDC_RENAME, FALSE);[/code]
'Windows > MFC' 카테고리의 다른 글
CWinApp Class (0) | 2013.10.02 |
---|---|
CObject Class (0) | 2013.10.02 |
CListCtrl 사용법 (0) | 2013.10.02 |
The simplest collections to use are CStringList, CStringArray, CList, CArray (0) | 2013.10.02 |
CListCtrl 에서 선택한 아이템 삭제하기 (0) | 2013.10.02 |