C语言实现方向键选中菜单

开发环境

程序思路

GetAsyncKeyState函数

若按下对应按键,则返回值为1,否则为0

VK_SHIFT //Shift键
VK_LSHIFT //左Shift键
VK_RSHIFT //右Shift键
VK_CONTROL //Ctrl键
VK_LCONTROL //左Ctrl键
VK_RCONTROL //右Ctril键
VK_MENU //Alt键
VK_LMENU //左Alt键
VK_RMENU //右Alt键
VK_LBUTTON //鼠标左键
VK_RBUTTON //鼠标右键
VK_ESCAPE //ESC键
VK_RETURN //回车键
VK_TAB //TAB键
VK_SPACE //空格键
VK_UP //方向键 ↑
VK_DOWN //方向键 ↓
VK_LEFT //方向键 ←
VK_RIGHT //方向键 →

菜单部分

switch(i)
{
case 1:
	printf(" *1、登录\n  2、注册\n  3、退出\n");
	break;
case 2:
	printf(" *1、登录\n  2、注册\n  3、退出\n");
	break;
case 3:
	printf(" *1、登录\n  2、注册\n  3、退出\n");
	break;
}
_getch();//如果报错请使用getch();

实现菜单切换

if (GetAsyncKeyState(VK_DOWN))
{
	if (i == 3)
		i = 1;
	else
		i++;
}
if (GetAsyncKeyState(VK_UP))
{
	if (i == 1)
		i = 3;
	else
		i--;
}
if (GetAsyncKeyState(VK_SPACE))
{
	system ("cls");
	if (i == 1)
		/*登录*/
	else if ( i == 2 )
		/*注册*/
	else if (i==3)
		break;		//跳出死循环
}

代码部分

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
int main()
{
 	int i = 1;
 	while (true)
 	{
  		system("cls");
  		printf("--------主菜单--------\n");
  		switch (i)//可以用*代表选中菜单
  		{
  		case 1:
   			printf(" *1、登录\n  2、注册\n  3、退出\n");
   			break;
  		case 2:
   			printf("  1、登录\n *2、注册\n  3、退出\n");
   			break;
  		case 3:
   			printf("  1、登录\n  2、注册\n *3、退出\n");
   			break;
  		}
  		_getch();//visual C++ 6.0环境下用getch()
		if (GetAsyncKeyState(VK_DOWN))
		{
			if (i == 3)
				i = 1;
			else
				i++;
		}
		if (GetAsyncKeyState(VK_UP))
  		{
   			if (i == 1)
    				i = 3;
 	  		else
   				i--;
 		}
 		if (GetAsyncKeyState(VK_SPACE))
 	 	{
   			system("cls");
   			if (i == 1)
    				printf("登录\n");//登录界面
   			if (i == 2)
    				printf("注册\n");//注册界面
   			if (i == 3)
    				break;
  		}
	}
	return 0;
}

运行界面在这里插入图片描述

发布了2 篇原创文章 · 获赞 1 · 访问量 156

猜你喜欢

转载自blog.csdn.net/weixin_45251780/article/details/104201579
今日推荐