一,新建一个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类型地变量,这样圆盘菜单总出现。
源码下载: