Hi,
I am trying to add CMFCToolBar object on CDialog derived class.
Toolbar got added, but button on the toolbar is not enabled, because application is not able to locate its handler. Though I have provided them in dialog class.
Please refer below sample code.
MyDlg.h File
class CMyDlg : public CDialog
{
...
CMFCToolBar m_ToolBar;
...
}
MyDlg.cpp File
void CMyDlg::CreateToolbar()
{
if( m_ToolBar.CreateEx(this, TBSTYLE_TRANSPARENT | TBSTYLE_FLAT,
AFX_DEFAULT_TOOLBAR_STYLE, CRect(1, 1, 1, 1), IDC_TOOLBAR) )
{
m_ToolBar.SetPaneStyle( m_ToolBar.GetPaneStyle()
& ~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_ANY) );
m_ToolBar.SetBorders ();
m_ToolBar.LoadBitmap(IDB_MAIN_CONTAINER_TOOLBAR);
m_ToolBar.InsertButton( CMFCToolBarButton(ID_MAIN_CONTAINER_TB_HOME, 0, _T("Home"), TRUE ) );
CSize sizeToolBar = m_ToolBar.CalcFixedLayout( FALSE, TRUE );
m_ToolBar.SetWindowPos(NULL, 0, 10, sizeToolBar.cx, sizeToolBar.cy,
SWP_NOACTIVATE | SWP_NOZORDER );
}
}
BOOL CMyDlg::OnInitDialog()
{
CreateToolbar();
return TRUE;
}
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
ON_WM_SIZE()
ON_COMMAND(ID_MAIN_CONTAINER_TB_HOME, OnHome)
ON_UPDATE_COMMAND_UI(ID_MAIN_CONTAINER_TB_HOME, OnUpdateCmdUIToolbar)
END_MESSAGE_MAP()
void DFMDlgMainContainerNew::OnHome()
{}
void DFMDlgMainContainerNew::OnUpdateCmdUIToolbar(CCmdUI* pCmdUI)
{
pCmdUI->Enable();
}
Your help would be highly appreciated.
Thanks,
Paresh.