C++ 控制台上下选择栏实现:简单易懂的代码示例
C++ 控制台上下选择栏实现:简单易懂的代码示例
以下是一个简单的 C++ 控制台程序,实现了上下选择栏的功能:
#include <iostream>
#include <conio.h>
void drawMenu(int selectedOption) {
system("cls"); // 清空控制台
// 设置控制台文本属性
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, 15); // 白色背景,黑色前景
// 输出第一个选项
if (selectedOption == 1) {
// 设置控制台文本属性
SetConsoleTextAttribute(hConsole, 0); // 黑色背景,白色前景
}
std::cout << ' 1 ' << std::endl;
// 设置控制台文本属性
SetConsoleTextAttribute(hConsole, 15); // 白色背景,黑色前景
// 输出第二个选项
if (selectedOption == 2) {
// 设置控制台文本属性
SetConsoleTextAttribute(hConsole, 0); // 黑色背景,白色前景
}
std::cout << ' 2 ' << std::endl;
}
int main() {
int selectedOption = 1; // 当前选项,默认为第一个
drawMenu(selectedOption);
while (true) {
// 监听键盘输入
char input = _getch();
if (input == 'w' || input == 'W') {
// 上移选项
selectedOption = (selectedOption == 1) ? 2 : 1;
} else if (input == 's' || input == 'S') {
// 下移选项
selectedOption = (selectedOption == 2) ? 1 : 2;
} else if (input == '\r') {
// 按下回车键确认选择
// 处理选项
std::cout << "You selected option " << selectedOption << std::endl;
break;
}
drawMenu(selectedOption);
}
return 0;
}
在这个程序中,使用了 Windows API 中的 GetStdHandle 和 SetConsoleTextAttribute 函数来设置控制台的文本颜色和背景颜色。通过不断监听键盘输入,实现了上下选择和确认选择的功能。选中的选项背景会变为白色。
请注意,这个程序只在 Windows 平台上可用,如果你在其他操作系统上运行,可能会出现错误。
本文档包含以下内容:
- C++ 控制台上下选择栏实现: 详细介绍如何使用 C++ 代码实现上下选择栏功能。
- 代码示例: 提供完整的 C++ 代码示例,方便你直接复制和运行。
- Windows API 函数: 解释了
GetStdHandle和SetConsoleTextAttribute函数的作用,并说明如何使用它们来设置控制台文本颜色和背景颜色。 - 平台兼容性: 指出该程序只在 Windows 平台上可用。
使用场景:
该程序可以用于实现简单的控制台菜单,例如:
- 用户可以选择不同的选项,例如“开始游戏”、“读取存档”和“退出游戏”。
- 用户可以选择不同的难度级别,例如“简单”、“中等”和“困难”。
进一步改进:
你可以根据自己的需要对该程序进行进一步的改进,例如:
- 添加更多的选项。
- 使用图形库来绘制更美观的菜单。
- 实现更复杂的功能,例如数据输入和处理。
希望本教程能够帮助你理解如何在 C++ 控制台中实现上下选择栏功能。如果你有任何疑问,请随时留言。
原文地址: https://www.cveoy.top/t/topic/bIQk 著作权归作者所有。请勿转载和采集!