1.在int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数中,修改这段代码
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_256, 0, 0, FALSE, 0, 0, IDB_BITMAP2) )//需要用位图初始化
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
SetToolbarIPic();//调用这个函数
2.自己定义的贴位图的函数
void CMainFrame::SetToolbarIPic()
{
UINT IDArray[] ={ID_FILE_NEW,ID_FILE_OPEN,ID_FILE_SAVE,ID_EDIT_CUT,ID_EDIT_COPY,ID_EDIT_PASTE,ID_FILE_PRINT,ID_APP_ABOUT};
m_wndToolBar.SetButtons(IDArray, 8); //这里定义工具栏的按钮个数
m_wndToolBar.SetSizes(CSize(26,26), CSize(24,24));//设置按钮和图像的大小
m_wndToolBar.ResetAllImages();//此方法清除了由CMFCToolBar:: LoadToolBar和CMFCToolBar:: LoadBitmap方法初始化的图像集。
m_wndToolBar.CleanUpLockedImages();//释放分配用于锁定工具栏的图像的系统资源
//只显示下边添加的位图,初始化的位图被清除了,并且初始化的位图不能再加到下边
m_wndToolBar.LoadBitmapW(IDB_BITMAP3);
m_wndToolBar.LoadBitmapW(IDB_BITMAP4);
m_wndToolBar.LoadBitmapW(IDB_BITMAP5);
。。。。
}
3.在InitInstance里设置
m_bSaveState = FALSE;
CleanState(); //用来清空注册表中保存的程序信息