CMFCToolBar的使用问题

hu_zy 2010-03-29 11:52:16
我在一个程序里面使用了CMFCToolBar,但是就是不能显示出来(应该出现的区域是空白的)
请各位大大帮忙看看代码是有什么问题啊!

注:代码是我从MSDN里面COPY出来的。。

..........
m_wndToolBar.EnableLargeIcons(FALSE);
//if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_SIZE_DYNAMIC) ||
// !m_wndToolBar.LoadToolBar(IDR_MAIN_TOOLBAR, 0, 0, TRUE))
//{
// TRACE0("未能创建工具栏\n");
// return -1; // 未能创建
//}

m_wndToolBar.Create( this, AFX_DEFAULT_TOOLBAR_STYLE, IDR_MAIN_TOOLBAR );
m_wndToolBar.LoadToolBar( IDR_MAIN_TOOLBAR, 0, 0, TRUE /* Is locked */);

DWORD tbStyle = m_wndToolBar.GetPaneStyle();
tbStyle |= CBRS_TOOLTIPS | CBRS_FLYBY;
tbStyle &= ~(CBRS_GRIPPER | CBRS_SIZE_DYNAMIC | CBRS_BORDER_TOP | CBRS_BORDER_BOTTOM | CBRS_BORDER_LEFT | CBRS_BORDER_RIGHT);
m_wndToolBar.SetPaneStyle(tbStyle);

m_wndToolBar.SetOwner(this); //dont know if is really necessary
m_wndToolBar.SetRouteCommandsViaFrame(FALSE);

....
...全文
725 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WYHVC 2010-03-30
  • 打赏
  • 举报
回复
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
..........
if(!m_wndModifyBar1.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP
|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!m_wndModifyBar1.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to create modify toolbar1\n");
return -1 ;
}
//set toolbar heading
m_wndModifyBar1.SetWindowText(_T("Modify Toolbar1"));
//////////////////
if(!m_wndModifyBar2.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_ALIGN_LEFT
|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_FLYBY|CBRS_SIZE_DYNAMIC)||
!m_wndModifyBar2.LoadToolBar(IDR_TOOLBAR2))
{
TRACE0("Failed to create modify toolbar2\n");
return -1 ;
}
//set toolbar heading
m_wndModifyBar2.SetWindowText(_T("Modify Toolbar2"));
//////////////////
// TODO: Delete these three lines if you don't want the toolbar to
// be docked
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
m_wndModifyBar1.EnableDocking(CBRS_ALIGN_ANY);
m_wndModifyBar2.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
DockControlBar(&m_wndModifyBar1);
DockControlBar(&m_wndModifyBar2);

DockControlBarLeftOf(&m_wndModifyBar1, &m_wndToolBar) ;
}
void CMainFrame::DockControlBarLeftOf(CControlBar *Bar, CControlBar *LeftOf)
{
CRect rect ;
DWORD dw ;
UINT n ;

RecalcLayout() ;
LeftOf->GetWindowRect(&rect) ;
rect.OffsetRect(1,0) ;
dw = LeftOf->GetBarStyle() ;
n = 0 ;
n = (dw&CBRS_ALIGN_TOP)?AFX_IDW_DOCKBAR_TOP : n ;
n = (dw&CBRS_ALIGN_BOTTOM&&n==0) ? AFX_IDW_DOCKBAR_BOTTOM : n ;
n = (dw&CBRS_ALIGN_LEFT&&n==0) ? AFX_IDW_DOCKBAR_LEFT : n ;
n = (dw&CBRS_ALIGN_RIGHT&&n==0) ? AFX_IDW_DOCKBAR_RIGHT : n ;

DockControlBar(Bar, n, &rect) ;
}

job82824 2010-03-30
  • 打赏
  • 举报
回复
确定资源里存在IDR_MAIN_TOOLBAR位图
muzizongheng 2010-03-30
  • 打赏
  • 举报
回复
你确信创建成功了没? 在哪里使用的, 请贴出代码.

我没发现有什么问题.
蒋晟 2010-03-30
  • 打赏
  • 举报
回复
需要升级项目
http://msdn.microsoft.com/en-us/library/bb983935.aspx

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧