开发环境
程序思路
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;
}