一,新建一个BCG工程BCGPRadialMenuSingle,基于对话框。
二, 新建或找一个png图片,上面画几个图标。导入到工程。导入后类型为PNG资源ID为IDR_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类型地变量,这样圆盘菜单总出现。
源码下载: