且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

MFC .。。CReBar 上添加工具栏背景

更新时间:2022-08-13 08:14:02

 

        CReBae  m_rebasr ;
        CToolBar m_wndToolBr;


 if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT   //设置背景为透明 来显示我们 CReBar 的背景图片
                   , 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;      // fail to create
 }

                //这三行代码如果我们不想停靠工具栏那么 删除掉
               /*m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);  
        EnableDocking(CBRS_ALIGN_ANY);
        DockControlBar(&m_wndToolBar);*/

          if(!m_rebar.Create(this)||
    !m_rebar.AddBar(&m_wndToolBar, NULL, NULL,
  RBBS_GRIPPERALWAYS | RBBS_FIXEDBMP))    
          {
            TRACE0("Failed to create RE  bar\n");
  return -1;      // fail to create
            }


  CReBarCtrl &ctl=m_rebar.GetReBarCtrl(); //返回 CReBarCtrl 的引用    
  HBITMAP  hbit=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),"bk.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE); //从文件加载位图 
  REBARBANDINFO  info ;
  memset(&info,0,sizeof(info));    //置0 
  info.cbSize=sizeof(REBARBANDINFO);
  info.fMask=RBBIM_BACKGROUND ;  //位掩码选择 填充hbmBack
  info.hbmBack=hbit;
  ctl.SetBandInfo(0,&info);