光标移动的函数

几个库函数:

函数名: bioskey
功 能: 直接使用BIOS服务的键盘接口
用 法: int bioskey(int cmd);
程序例:

#include <stdio.h>
#include <bios.h>
#include <ctype.h>

#define RIGHT 0x01
#define LEFT 0x02
#define CTRL 0x04
#define ALT 0x08

int main(void)
{
int key, modifiers;

/* function 1 returns 0 until a key is pressed */
while (bioskey(1) == 0);

/* function 0 returns the key that is waiting */
key = bioskey(0);

/* use function 2 to determine if shift keys were used */
modifiers = bioskey(2);
if (modifiers)
{
printf("[");
if (modifiers & RIGHT) printf("RIGHT");
if (modifiers & LEFT) printf("LEFT");
if (modifiers & CTRL) printf("CTRL");
if (modifiers & ALT) printf("ALT");
printf("]");
}
/* print out the character read */
if (isalnum(key & 0xFF))
printf("'%c'/n", key);
else
printf("%#02x/n", key);
return 0;
}

 

下拉菜单:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void vMainMenu()
{
     printf("File(F1)/tEdit(F2)/tHelp(F3)/n");
}

void vPrintFileMenu()
{
     system("cls");
     vMainMenu();
     printf("┌───────┐/n");
     printf("│Open   Ctrl+F2│/n");
     printf("│Save   Ctrl+F3│/n");
     printf("│Exit   Ctrl+F4│/n");
     printf("└───────┘/n");
}

int main()
{
    int fF1 = 0;
    vMainMenu();
    while(1)
    {
            if(GetAsyncKeyState(VK_F1)<0)
            {
                if(fF1 == 0){vPrintFileMenu();fF1=1;}
                else{system("cls");fF1=0;vMainMenu();};
                Sleep(100);
            }
            if(GetAsyncKeyState(VK_F5)<0)
            break;
    }
    system("pause");
    return 0;
}

 

颜色的定义:

#include <windows.h>

void Gotoxy(int x, int y)                    //定位坐标位置,x为控制台的列,y为控制台的行。即定位到y行x列处
{
    int xx=0x0b;
    HANDLE hOutput;
    COORD loc;
    loc.X = x; loc.Y=y;
    hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(hOutput, loc);
    return;
}

void SetColor(int fg,int bg)            //控制台颜色设置。fg为控制台前景色,bg为控制台背景色,取值为0-16
{
    WORD wColor;
    HANDLE hnd=GetStdHandle(STD_OUTPUT_HANDLE);    //得到控制器的句柄
    bg<<=4;
    wColor=(fg & 0x000f )|(bg & 0x00f0);
    SetConsoleTextAttribute(hnd,wColor);
   
    return;
}
1亮蓝色
2绿色
3蓝色
4红色
5紫色6暗黄7白8暗白9深蓝10叶绿色11蓝绿色12红13亮紫14亮黄15白16黑

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值