[C/C++]使用上下左右控制菜单项
来源:互联网 发布:淘宝提升信誉的方法 编辑:程序博客网 时间:2024/05/17 15:35
实现功能:
使用上下键切换菜单项
使用左右键返回或进入
使用Esc键退出菜单
编译通过:VS2013
代码如下:
#include <iostream> using std::cout; using std::endl; #include <string> using std::string; #include <conio.h>#include <windows.h> #define MI 3//menu iterm number void gotoxy(int x, int y){COORD coord;coord.X = x;coord.Y = y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);}int main(void) { int fr = 0;//sign to row int fc = 0;//sign to column int g;//gets the keyboard value string bars = "\n\n\t\t------------------------------------------------\n" "\t\t|***-------------- Menu Bar --------------***|\n" "\t\t------------------------------------------------\n"; string menu[MI] = { "menu1", "menu2", "menu3" }; string pich = "\t\t\t\t ->\t"; loop:system("cls");cout << bars; do {gotoxy(0, 6); for (int index = 0; index < MI; ++index) { if (fr == index) { cout << pich; cout << menu[index] << endl; } else cout << "\t\t\t\t\t" << menu[index] << endl; if (fc != 0) { system("cls"); cout << bars; if (fc == 1) { if (fr == 0) cout << "\t\t\t\tenter " << menu[0]; else if (fr == 1) cout << "\t\t\t\tenter " << menu[1]; else if (fr == 2) cout << "\t\t\t\tenter " << menu[2]; } else if (fc == -1) cout << "\t\t\tReturn to the previous menu!"; cout << "\n\t\t\t\t"; system("pause"); fc = 0; goto loop; } } g = _getch(); switch (g) { case 0x48://up --fr; if (fr < 0) fr = MI - 1; break; case 0x50://down ++fr; if (fr > MI - 1) fr = 0; break; case 0x4b://left fc = -1; break; case 0x4d://right fc = 1; break; } } while (g != 0x1b);//Esc to quit return 0; }
0 0
- [C/C++]使用上下左右控制菜单项
- 【C#】winfromdataGridView键盘上下左右方向
- 控制上下左右
- 【C#】菜单
- 使用vi编辑时上下左右方向键被转化为A、B、C、D怎么办?
- C#Winform菜单的使用问题总结
- C++:使用用户控制循环/使用哨兵值控制循环
- python 键盘上下左右控制
- 控制控件上下左右移动
- 使用c:forEach 控制5个换行
- 使用c:forEach 控制5个换行
- C语言之控制台读取上下左右方向键指令
- C#DataGridView右键菜单
- "效果"(C)菜单
- C 菜单浏览
- 【C++】使用函数指针制作菜单管理…
- C#Winform主窗体Load事件中对菜单权限进行控制
- C控制语句:循环
- 使用类 友元简介
- Fragment & Task
- 使用Visual Studio 创建可视Web Part部件
- 遍历json对象并获取json对象的长度(不是json数组)
- java.lang.ClassCastException
- [C/C++]使用上下左右控制菜单项
- 葡萄奶酥
- dojo小例子(15)给dojo on的事件处理函数传递自定义参数的两种方法
- 插入排序
- The method Inflate() in android
- 关于:小米唐沐:十年经验 做产品32字方针的摘录
- [PhoneGap] [Cordova] 生成Jar文件
- 利用java模拟登陆
- Spring3.0官网文档学习笔记(六)--3.4.1