掌握程序鼠标交互方法,尝试为其添加键盘与菜单控制C++代码
时间: 2024-01-22 12:18:44 浏览: 22
以下是一个简单的例子,演示了如何使用 C++ 编写程序的键盘和菜单控制:
```cpp
#include <iostream>
#include <conio.h>
#include <windows.h>
// 菜单选项
enum MenuOption {
OPTION_PLAY = 1,
OPTION_PAUSE,
OPTION_STOP,
OPTION_EXIT
};
// 控制器类
class Controller {
public:
void play() {
std::cout << "播放" << std::endl;
}
void pause() {
std::cout << "暂停" << std::endl;
}
void stop() {
std::cout << "停止" << std::endl;
}
void exit() {
std::cout << "退出" << std::endl;
}
};
// 主函数
int main() {
Controller controller;
int option;
// 显示菜单
std::cout << "1. 播放" << std::endl;
std::cout << "2. 暂停" << std::endl;
std::cout << "3. 停止" << std::endl;
std::cout << "4. 退出" << std::endl;
// 循环等待用户输入
while (true) {
// 检测键盘按键
if (_kbhit()) {
char key = _getch();
// 处理输入的键盘字符
switch (key) {
case 'p':
controller.play();
break;
case 's':
controller.stop();
break;
case 'r':
controller.pause();
break;
case 'q':
controller.exit();
return 0;
}
}
// 检测菜单选择
if (_kbhit()) {
option = _getch() - '0';
// 处理选择的菜单选项
switch (option) {
case OPTION_PLAY:
controller.play();
break;
case OPTION_PAUSE:
controller.pause();
break;
case OPTION_STOP:
controller.stop();
break;
case OPTION_EXIT:
controller.exit();
return 0;
}
}
// 等待 100 毫秒
Sleep(100);
}
return 0;
}
```
在上面的代码中,我们定义了一个 `Controller` 类,包含了三个控制方法:`play()`、`pause()` 和 `stop()`。我们还定义了一个枚举类型 `MenuOption`,用于表示菜单选项。
在 `main()` 函数中,我们首先显示了菜单选项。然后使用一个无限循环等待用户输入。我们使用 `_kbhit()` 函数检测键盘输入,如果有输入,则使用 `_getch()` 函数读取输入的字符。
如果用户输入了 `p`、`s` 或 `r`,则调用相应的控制方法。如果用户输入了 `q`,则退出程序。
如果用户输入了数字键,则表示选择了菜单选项,我们根据输入的数字来调用相应的控制方法。
在循环的末尾,我们调用了 `Sleep(100)` 函数,让程序等待 100 毫秒,以避免 CPU 占用率过高。