BCG圆盘菜单

一,新建一个BCGprojectBCGPRadialMenuSingle,基于对话框。

二, 新建或找一个png图片。上面画几个图标。导入到project。导入后类型为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圆盘菜单

原文地址:https://www.cnblogs.com/wgwyanfs/p/6888242.html