BCGControlBar使用(三)

补充CBCGPToolBar的使用

CMainFrame::OnCreate下

(1) CBCGPToolBar::EnableQuickCustomization ();//按Alt键时可以拖动工具栏上的图标重新排列

(2) m_wndToolBar.EnableCustomizeButton (TRUE, ID_VIEW_CUSTOMIZE, _T("Customize..."));

//允许自定义工具栏,名字“Customize”,并与菜单项ID_VIEW_CUSTOMIZE关联。

【原创】BCGControlBar使用(三)

void CMainFrame::OnViewCustomize()
{//在BCG标准的自定义工具栏中加入新的属性页
 CList <CRuntimeClass*, CRuntimeClass*> lstCustomPages;
 lstCustomPages.AddTail (RUNTIME_CLASS (CMyCustomizationPage));

//CMyCustomizationPage是一个自定义的属性页
 //------------------------------------
 // Create a customize toolbars dialog:
 //------------------------------------
 CBCGPToolbarCustomize* pDlgCust = new CBCGPToolbarCustomize (this,
  TRUE ,
  BCGCUSTOMIZE_MENU_SHADOWS | BCGCUSTOMIZE_TEXT_LABELS |
  BCGCUSTOMIZE_LOOK_2000 | BCGCUSTOMIZE_MENU_ANIMATIONS, // default parameters
  &lstCustomPages); // pointer to the list of runtime classes of the custom property pages

 pDlgCust->Create ();
}

 

(3)将占位菜单项ID_VIEW_TOOLBARS替换为菜单IDR_POPUP_TOOLBAR

virtual BOOL OnShowPopupMenu (CBCGPPopupMenu* pMenuPopup);

BOOL CMainFrame::OnShowPopupMenu (CBCGPPopupMenu* pMenuPopup)
{
 //---------------------------------------------------------
 // Replace ID_VIEW_TOOLBARS menu item to the toolbars list:
 //---------------------------------------------------------
    CFrameWnd::OnShowPopupMenu (pMenuPopup);

    if (pMenuPopup != NULL &&
  pMenuPopup->GetMenuBar ()->CommandToIndex (ID_VIEW_TOOLBARS) >= 0)
    {
  if (CBCGPToolBar::IsCustomizeMode ())
  {
   //----------------------------------------------------
   // Don't show toolbars list in the cuztomization mode!
   //----------------------------------------------------
   return FALSE;
  }

  pMenuPopup->RemoveAllItems ();

  CMenu menu;
  VERIFY(menu.LoadMenu (IDR_POPUP_TOOLBAR));

  CMenu* pPopup = menu.GetSubMenu(0);
  ASSERT(pPopup != NULL);

  pMenuPopup->GetMenuBar ()->ImportFromMenu (*pPopup, TRUE);
    }

 return TRUE;
}

【原创】BCGControlBar使用(三)

 

IDR_POPUP_TOOLBAR菜单
【原创】BCGControlBar使用(三)

posted on 2010-08-16 17:30  carekee  阅读(1147)  评论(0)    收藏  举报