一,新建一个BCG工程BCGPRadialMenuSingle,基于对话框。

二, 新建或找一个png图片,上面画几个图标。导入到工程。导入后类型为PNG资源IDIDR_PNG1。

三,利用类向导重写PreTranslateMessage。

BOOL CBCGPRadialMenuSingleDlg::PreTranslateMessage(MSG* pMsg) 

{

if (pMsg->message == WM_RBUTTONDOWN )

{

CPoint point = pMsg->pt ;

CBCGPRadialMenu* pMenuCtrl = new CBCGPRadialMenu;

CBCGPRadialMenuObject* pMenu = pMenuCtrl->GetRadialMenuObject();

ASSERT_VALID(pMenu);

pMenu->SetImageList(IDR_PNG1);

pMenu->AddCommand(ID_EDIT_PASTE, 2 /* Image index */);

pMenu->AddCommand(ID_EDIT_CUT, 3 /* Image index */);

pMenu->AddCommand(ID_EDIT_COPY, 4 /* Image index */);

pMenu->EnableCenterButton();

pMenu->AddCommand(ID_EDIT_CLEAR, 7 /* Image index */);

pMenuCtrl->CreatePopup(point, (BYTE)( 155));

}

return CBCGPDialog::PreTranslateMessage(pMsg);

}

四,Ctrl+F5运行,在对话框上右键,效果如图。

说明:

一,由于CBCGPRadialMenu派生子CStatic,所以直接在界面上拖一个静态控件,然后关联CBCGPRadialMenu类型地变量,这样圆盘菜单总出现。

 

源码下载:

 

BCG圆盘菜单

posted on 2021-03-14 15:43  闻缺陷则喜何志丹  阅读(1)  评论(0编辑  收藏  举报  来源