Introduction
When you are porting your MFC application to MSVC 6.0 you'd probably like to use the
build-in support for the flat toolbar and kick that third-party solution out of your
project, reducing the file size.
If you download a cool sample application and give it a try in your MSVC 5.0
environment, you may have a problem when compiling it, because your compiler doesn't know
the CToolBar::CreateEx
method which is new in the MFC since MSVC 6.0 was released.
Obviously there were slight changes applied to MFC.
In order to do this, you simply have to change a few lines of source code.
This is what the 5.0 application wizard wrote for you in in CMainFrame::OnCreate
:
if (!m_wndToolBar.Create(this) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
m_wndToolBar.SetBarStyle(m_wndToolBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
change this to
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;
}
and this could be all, if you don't need to support both compilers. If you want to give
your source code away to your friends who still have the older version, you may use the
poor documented preprocessor constant _MSC_VER:
#if _MSC_VER > 1100 // for MSSVC 5.0 this is 1100
<font color="#008000">
</font>#else
<font color="#008000">
</font>#endif