CMFCRibbonMiniToolBar類的用法

CMFCRibbonMiniToolBar

通常於用戶在文檔中選擇對象後顯示浮動工具欄。 例如,用戶在文字處理程序中選擇文本塊後,應用程序將顯示包含文本格式設置命令的浮動工具欄。
鼠標指針位於浮動工具欄邊界之外時,浮動工具欄將變透明。


成員函數

CMFCRibbonMiniToolBar::CreateObject
由框架用於創建此類類型的動態實例。

CMFCRibbonMiniToolBar::GetThisClass
由框架用於獲取一個指向CRuntimeClass程序與此類類型的對象。

CMFCRibbonMiniToolBar::IsContextMenuMode

CMFCRibbonMiniToolBar::IsRibbonMiniToolBar
(重寫 CMFCPopupMenu::IsRibbonMiniToolBar。)

CMFCRibbonMiniToolBar::SetCommands
設置要在工具欄上顯示的命令的列表。

CMFCRibbonMiniToolBar::Show
在指定的屏幕座標上顯示浮動工具欄。

CMFCRibbonMiniToolBar::ShowWithContextMenu
顯示浮動工具欄以及上下文菜單。

例子

void CMSOffice2007DemoView::OnRButtonUp(UINT nFlagsCPoint point)

{

long nStartCharnEndChar;

GetRichEditCtrl().GetSel(nStartCharnEndChar);

if (nEndChar - nStartChar <= 1)

{

SendMessage(WM_LBUTTONDOWNnFlagsMAKELPARAM(point.xpoint.y));

ReleaseCapture ();

}

CPoint ptScreen = point;

ClientToScreen(&ptScreen);

if (!ShowContextMenu(ptScreen))

{

Default();

}

}


void CMSOffice2007DemoView::OnLButtonUp(UINT nFlagsCPoint point)

{

CRichEditView::OnLButtonUp(nFlagspoint);

if (m_ptMouseDown == CPoint (-1, -1))

{

return;

}

m_ptMouseDown = CPoint (-1, -1);

if (GetSelectedItem() != NULL || CMFCPopupMenu::GetActiveMenu() != NULL || GetRichEditCtrl().GetSelText().IsEmpty())

{

return;

}

if (!theApp.m_bShowFloaty)

{

return;

}

CMFCRibbonMiniToolBarpFloaty = new CMFCRibbonMiniToolBar;

InitFloaty(pFloaty);

ClientToScreen(&point);

pFloaty->Show(point.xpoint.y);

}



//顯示上下文菜單(右鍵菜單)

BOOL CMSOffice2007DemoView::ShowContextMenu(CPoint point)

{

if (DYNAMIC_DOWNCAST(CFrameWndExGetParentFrame()) == NULL)

{

// Maybe, server mode, show the regular menu!

return FALSE;

}

CRichEditCntrItempItem = GetSelectedItem();

if (pItem == NULL || !pItem->IsInPlaceActive())

{

CMFCRibbonMiniToolBarpFloaty = new CMFCRibbonMiniToolBar;

InitFloaty(pFloaty);

pFloaty->ShowWithContextMenu(point.xpoint.yIDR_CONTEXT_MENUthis);

return TRUE;

}

return FALSE;

}


其中

void CMSOffice2007DemoView::InitFloaty(CMFCRibbonMiniToolBarpFloaty)

{

ASSERT_VALID(pFloaty);

CList<UINTUINTlstCmds;

lstCmds.AddTail(ID_FONT_FONT);

lstCmds.AddTail(ID_FONT_FONTSIZE);

lstCmds.AddTail(ID_FONT_GROWFONT);

lstCmds.AddTail(ID_FONT_SHRINK);

lstCmds.AddTail(ID_WRITE_CHANGESTYLES);

lstCmds.AddTail(ID_EDIT_COPYFORMAT);

lstCmds.AddTail(ID_FONT_BOLD);

lstCmds.AddTail(ID_FONT_ITALIC);

lstCmds.AddTail(ID_PARA_CENTER);

lstCmds.AddTail(ID_FONT_TEXTHIGHLIGHT);

lstCmds.AddTail(ID_FONT_COLOR);

lstCmds.AddTail(ID_PARA_DECREASEINDENT);

lstCmds.AddTail(ID_PARA_INCREASEINDENT);

lstCmds.AddTail(ID_PARA_BULLETS);

pFloaty->SetCommands(((CMainFrame*) GetTopLevelFrame())->GetRibbonBar(), lstCmds);

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章