//右键消息 VOID CSkinRichEdit::OnRButtonDown(UINT nFlags, CPoint Point) { //设置焦点 SetFocus(); //构造菜单 CSkinMenu FunctionMenu; FunctionMenu.CreateMenu(); //建立菜单 FunctionMenu.AppendMenu(IDM_COPY_STRING,TEXT("复制(&C) Ctrl+C")); FunctionMenu.AppendMenu(IDM_SELECT_ALL,TEXT("全选(&A) Ctrl+A")); FunctionMenu.AppendMenu(IDM_DELETE_STRING,TEXT("删除(&D)")); FunctionMenu.AppendMenu(IDM_CLEAR_ALL,TEXT("清除屏幕")); FunctionMenu.AppendSeparator(); FunctionMenu.AppendMenu(IDM_SAVE_STRING,TEXT("保存信息...")); //禁止菜单 UINT nEnableMask=((GetSelectionType()!=SEL_EMPTY)?0:MF_GRAYED); FunctionMenu.EnableMenuItem(IDM_COPY_STRING,MF_BYCOMMAND|nEnableMask); FunctionMenu.EnableMenuItem(IDM_DELETE_STRING,MF_BYCOMMAND|nEnableMask); //显示菜单 ClientToScreen(&Point); FunctionMenu.TrackPopupMenu(Point.x,Point.y,this); return; }
void CSampleDlg::OnRButtonDown( UINT nFlags, CPoint point ) { __super::OnRButtonDown(nFlags,point); //构造菜单 CSkinMenu MainMenu; MainMenu.CreatePopupMenu(); MainMenu.AppendMenu(4000,TEXT("子节点"),0,0,MF_POPUP); MainMenu.AppendMenu(4001,TEXT("子节点"),TEXT("Res\\Button\\message.png")); MainMenu.SetMenuBarImage(TEXT("Res\\Menu\\menu_left_bg.png"),&CRect(2,2,2,2)); MainMenu.SetMenuBackImage(TEXT("Res\\Menu\\menu_right_bg.png"),&CRect(2,2,2,2)); MainMenu.SetMenuHovenImage(TEXT("Res\\Menu\\menu_selected.png"),&CRect(2,2,2,2)); MainMenu.SetSeparatorImage(TEXT("Res\\Menu\\menu_separtor.png"),&CRect(2,2,2,2)); MainMenu.SetCheckImage(TEXT("Res\\Menu\\menu_check.png")); MainMenu.SetArrowImage(TEXT("Res\\Menu\\menu_arrow.png")); //MainMenu.SetFrameColor(RGB(255,0,0)); //显示菜单 MainMenu.TrackPopupMenu(this); }