右键管家MenuMgr-1.2单文件

     右键管家是由[drag0n]编写的“XP超级右键”、“右键扩展菜单管理器”发展而来的作品,不久前,右键管家V1.2版本发布,增加了Windows 8部分右键描述。经过精心的设计,提供简单易用的界面,原生单文件,是一款功能强大而又易用的右键菜单管理工具。

 

右键管家是一款强大的Windows右键菜单管理工具,既能快速检测并清理资源管理器(Explorer)右键菜单和IE右键菜单,也能按需求新增所需右键功能,并能按照文件类型分类管理右键菜单。右键管家能有效帮助用户了解自己右键所需,减少因系统自带、安装程序等因素造成的右键菜单累赘,操作简便、易懂、安全、实用。右键管家支持WinXP和Win7、Win8操作系统。

00.主题截图

01.可编辑新菜单

 

绿野仙踪推荐下载:http://pan.baidu.com/s/1pJJk9lT

备份下载:http://pan.baidu.com/s/1sjscd33

 

转载于:https://www.cnblogs.com/lieyan/p/3912553.html

Menu类的设计如下: ```cpp class Menu { public: virtual void show() = 0; // 显示菜 virtual int getChoice() = 0; // 获取用户选择 virtual bool isEnd() = 0; // 是否结束程序 virtual ~Menu() {} // 虚析构函数 }; ``` 其中,`show()` 方法用于显示菜,`getChoice()` 方法用于获取用户选择,`isEnd()` 方法用于判断是否结束程序。 然后,我们可以派生出具体的菜类,例如 `MainMenu`、`OrgMenu` 等。这些菜类需要实现上述三个方法。 ```cpp class MainMenu : public Menu { public: void show() override; int getChoice() override; bool isEnd() override; }; class OrgMenu : public Menu { public: void show() override; int getChoice() override; bool isEnd() override; }; ``` 接下来,我们需要实现一个例的菜管理类 `MenuMgr`。 ```cpp class MenuMgr { public: static MenuMgr& getInstance(); // 获取例 void setCurrentMenu(Menu* menu); // 设置当前活动菜 Menu* getCurrentMenu(); // 获取当前活动菜 private: MenuMgr() {} // 构造函数私有化,禁止外部创建对象 MenuMgr(const MenuMgr&) = delete; // 禁止拷贝构造函数 MenuMgr& operator=(const MenuMgr&) = delete; // 禁止赋值运算符 Menu* currentMenu; // 当前活动菜 }; ``` `MenuMgr` 类中包含一个指向当前活动菜的指针,同时也禁止外部创建对象、拷贝构造函数和赋值运算符,保证例的实现。 最后,我们可以在主函数中循环执行菜的相应功能。 ```cpp int main() { MenuMgr& menuMgr = MenuMgr::getInstance(); // 获取菜管理类menuMgr.setCurrentMenu(&mainMenu); // 设置当前活动菜为主菜 while (!menuMgr.getCurrentMenu()->isEnd()) { // 循环执行菜功能 menuMgr.getCurrentMenu()->show(); // 显示当前活动菜 int choice = menuMgr.getCurrentMenu()->getChoice(); // 获取用户选择 if (choice == -1) { // 用户输入错误 std::cout << "Invalid input, please try again." << std::endl; continue; } switch (choice) { case 1: { // 进入组织管理菜 menuMgr.setCurrentMenu(&orgMenu); break; } case 4: { // 返回主菜 menuMgr.setCurrentMenu(&mainMenu); break; } case 3: { // 结束程序 std::cout << "Exiting program..." << std::endl; return 0; } default: { // 其他情况 std::cout << "Invalid input, please try again." << std::endl; break; } } } return 0; } ``` 其中,`mainMenu` 和 `orgMenu` 是具体的菜对象,可以在程序中初始化。在循环中,我们先显示当前活动菜,然后获取用户选择。根据用户选择,切换当前活动菜,或者结束程序。如果用户输入错误,需要提示用户重新输入。 这样,我们就实现了一个简的菜子系统,使用面向对象的程序设计思想,按照要求实现了菜类、菜管理类和具体的菜对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值