CMFCRibbonMiniToolBar类的用法

来源:互联网 发布:淘宝联盟结算金额不对 编辑:程序博客网 时间:2024/05/21 22:32

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);

}



原创粉丝点击