c++ 方框中绘制菜单代码
绘制静态菜单
getch与getchar
接收光标控制 一、绘制静态菜单
编写函数void mainmenu( void)
二、getch与getchar
getch()的作用是从键盘接收一个字符,而且并不把这个字符显示出来,就是说,你按了一个键后它并不在屏幕上显示你按的什么,而继续运行后面的代码;
getche()则是有返回显示;
getchar()函数也是从键盘上读入一个字符,并带回显。它与getch()的区别在于:getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上但只有第一个字符作为函数的返回值.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdarg.h>
#include <time.h>
#include "hello.h"
#include <share.h>
#include <Windows.h>
//#define var 333;
//移动光标位置
void gotoxy(int x,int y)
{
COORD xy;
HANDLE hstdout;
hstdout=GetStdHandle(STD_OUTPUT_HANDLE);
xy.X=x;
xy.Y=y;
SetConsoleCursorPosition(hstdout,xy);
//CloseHandle(hstdout);
}
void fillchar(char a,int charlen)
{
COORD xy={};
HANDLE hstdout;
long byw; hstdout=GetStdHandle(STD_OUTPUT_HANDLE);
FillConsoleOutputCharacter(hstdout,a,charlen,xy,&byw);
CloseHandle(hstdout);
}
#define X 20
#define Y 6
//绘制边框
void drawM(void)
{
int i;
//上边
gotoxy(X,Y);
printf("┏");
for (i=;i<=;i++)
{
printf("━");
}
printf("┓");
//左边
for (i=;i<=;i++)
{
gotoxy(X,Y+i);
printf("┃");
}
//右边
for (i=;i<=;i++)
{
gotoxy(X+,Y+i);
printf("┃");
}
//下边
gotoxy(X,Y+);
printf("┗");
for (i=;i<=;i++)
{
printf("━");
}
printf("┛");
return ; }
//drawmenu
void drawmenu(void)
{
gotoxy(X+,Y+);
printf("-->菜单选项一");
gotoxy(X+,Y++);
printf(" 菜单选项二");
gotoxy(X+,Y+++);
printf(" 菜单选项三");
gotoxy(,);
}
int selmenu_Num=;
int selmenu(void)
{ //0,1,2
//如果按下↓selmenu_Num++; 如果>2 selmenu_Num=0;
//如果按下↑selmenu_Num--; 如果<0 selmenu_Num=2;
int ch=;
while()
{
ch=getch();
//gotoxy(0,0);
//printf("%d ",ch);
if (ch==)
{
return selmenu_Num;
}
switch(ch)
{
case ://上光标
selmenu_Num--;
if (selmenu_Num<)
{
selmenu_Num=;
}
break;
case : //下光标
selmenu_Num++;
if (selmenu_Num>)
{
selmenu_Num=;
}
break;
}
gotoxy(,);
printf("selmenu_num=%d",selmenu_Num);
} //end while
printf("\n选择的菜单是:%d");
return selmenu_Num;
}
int main(void)
{ //Y行 X列
// fillchar(' ',3000);
system("color 0a");
system("title QQ150330575");
drawM();
drawmenu();
selmenu();
getchar();
getchar();
return ;
}
c++ 方框中绘制菜单代码的更多相关文章
- HTML5在canvas中绘制复杂形状附效果截图
HTML5在canvas中绘制复杂形状附效果截图 一.绘制复杂形状或路径 在简单的矩形不能满足需求的情况下,绘图环境提供了如下方法来绘制复杂的形状或路径. beginPath() : 开始绘制一个新路 ...
- IOS开发中绘制地图线路
地图应用经常会涉及到线路的绘制问题,ios下可以使用MKMapView进行地图开发,使用 MKOverlayView进行线路的绘制. 使用MKMapView添加MKMap.framework 和Cor ...
- 如何在 Matlab 中绘制带箭头的坐标系
如何在 Matlab 中绘制带箭头的坐标系 如何在 Matlab 中绘制带箭头的坐标系 实现原理 演示效果 完整代码 实现原理 使用 matlab 的绘制函数时,默认设置为一个方框形的坐标系, 图1 ...
- CSharpGL(6)在OpenGL中绘制UI元素
CSharpGL(6)在OpenGL中绘制UI元素 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码中包含10多个独立的Demo,更适合入 ...
- 转: javascript实现全国城市三级联动菜单代码
<html> <head> <title>js全国城市三级联动菜单代码_B5教程网</title> <meta http-equiv=" ...
- phalcon: Windows 下 Phalcon dev-tools 配置 和 Phpstorm中配置Phalcon 代码提示, phalcon tools的使用
准备: phalcon-devtools包 下载地址: https://github.com/phalcon/phalcon-devtools 解压到wampserver的www目录 (xampp 用 ...
- [JS]以下是JS省市联动菜单代码
以下是JS省市联动菜单代码: 代码一: <html> <head> <title></title> <script language=" ...
- JS打字效果的动态菜单代码分享
这篇文章主要介绍了JS打字效果的动态菜单,推荐给大家,有需要的小伙伴可以参考下. 这是一款基于javascript实现的打字效果的动态菜单特效代码,分享给大家学习学习. 小提示:浏览器中如果不能正常运 ...
- Android中绘制圆角矩形图片及任意形状图片
圆角矩形图片在苹果的产品中很流行,相比于普通的矩形,很多人都喜欢圆角矩形的图片,因为它避开了直角的生硬,带来更好的用户体验,下面是几个设计的例子: 下面在Android中实现将普通的矩形图片绘制成圆角 ...
随机推荐
- scrapy实战--爬取最新美剧
现在写一个利用scrapy爬虫框架爬取最新美剧的项目. 准备工作: 目标地址:http://www.meijutt.com/new100.html 爬取项目:美剧名称.状态.电视台.更新时间 1.创建 ...
- MySql EF6 DBFirst 向导无法生成 edmx 解决方法(同:您的项目引用了最新实体框架;但是,找不到数据链接所需的与版本兼容的实体框架数据库提供程序)
使用 MySql EF6 DBfirst 生成模型时经常会遇到EF6模式无法选择的情况究其原因, 还是因为没有正确的使用 Connector/Net. 下面说一下使用方法. 使用 MySql DBFi ...
- C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数
各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 输出: 解释: 各位相加的过程为: + = , + = . 由于 是一位数,所以返回 . 进阶:你可以 ...
- [2018HN省队集训D6T2] girls
[2018HN省队集训D6T2] girls 题意 给定一张 \(n\) 个点 \(m\) 条边的无向图, 求选三个不同结点并使它们两两不邻接的所有方案的权值和 \(\bmod 2^{64}\) 的值 ...
- python -wordcloudan云词安装
1安装网站:https://download.lfd.uci.edu/pythonlibs/u2yrk7ps/wordcloud-1.4.1-cp36-cp36m-win_amd64.whl 2安装过 ...
- Array对象常用方法
不改变原数组: 1.concat() 连接两个或多个数组 不改变原数组 返回被连接数组的一个副本 2.join() 把数组中所有元素放入一个字符串 不改变原数组 返回字符串 3.slice() ...
- Python的unittest框架的断言总结
常用的断言方法如下: assertFalse:为假时返回True:self.assertFalse(表达式,“表达式为true时打印的message”) assertTrue:为真时返回True:se ...
- OSSpinLockLock加锁机制,保证线程安全并且性能高
在aspect_add.aspect_remove方法里面用了aspect_performLocked, 而aspect_performLocked方法用了OSSpinLockLock加锁机制,保证线 ...
- 【[TJOI2015]弦论】
\(SA+SAM\) 第一问显然是一个\(SAM\)的经典问题,我们排完序之后直接使用一直往下找\(n+1-sa[i]-het[i]\)就好了,找到\(K\)减不动了输出就好了 第二问是\(SAM\) ...
- etherlime-1-Quick Start
https://etherlime.readthedocs.io/en/latest/getting-started.html Quick Start Installing全局安装 npm i -g ...