C++控制台窗口界面的编程(基础)

前言

    作为初学者,每一个学习 C、C++的人所面对的都是一个黑黑的窗口,从初识C++,再到一道一道的刷题,到进一步的ACM,这个黑色的窗口都一直陪伴着我们。无聊之余,自己用C++做了一个控制台的小界面,希望能让C++初学者对如何用C++做一个简单控制台窗口界面有初步了解。

控制台界面编程---->参考网址:点击打开链接

 

界面

这只是单纯的界面,本来是一个小游戏。(因为游戏还有很多bug,所以此处没有分享 :0 )

代码附上:

代码

 

#include <bits/stdc++.h>//C++万能头
#include<windows.h>//控制台编程主要头文件
#include<conio.h>//getch()函数
#include<stdlib.h>//system()函数
using namespace std;
void pos(int x,int y);//确定光标位置
void blue_border();//蓝色字体
void white_back();//还原亮白色字体
void cyan_choose();//青色字体
void on_Select();//被选中时的样式
void onChoose(int x,int y);//确定所选中的位置
void star();//初始化界面
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);//获取标准输出句柄
int main()
{
    system("color 7F");//设置控制台界面背景颜色和前景颜色
    system("mode con cols=100 lines=40");//初始化缓冲区大小
    SetConsoleTitle("StathamJ的程序");//设置控制台窗口标题
    cyan_choose();
    cout<<"w,a,s,d 控制光标选择;空格 确定"<<endl;

    blue_border();
    pos(5,5);
    cout<<">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>";//上边框
    pos(5,25);
    cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<";//下边框
    for(int i=5,j=6; j<25; j++) //左边框
    {
        pos(i,j);
        cout<<"*";
    }
    for(int i=85,j=6; j<25; j++) //右边框
    {
        pos(i,j);
        cout<<"*";
    }

    cyan_choose();
    pos(65,10);
    cout<<"2. 选择 ";
    pos(25,20);
    cout<<"3. 继续 ";
    pos(65,20);
    cout<<"4. 退出 ";
    on_Select();
    pos(25,10);
    cout<<"1. 开始 ";

//wsad控制光标对进行自由选择
    int x=25,y=10;
    char sel;
    sel=getch();
    while(sel!=' ')
    {
        star();
        switch(sel)
        {
        case 'w':
            y=y-10;
            break;
        case 's':
            y=y+10;
            break;
        case 'a':
            x=x-40;
            break;
        case 'd':
            x=x+40;
            break;
        }
//防止超出范围
        if(x>=65)
        {
            x=65;
        }
        if(y>=20)
        {
            y=20;
        }
        if(x<=25)
        {
            x=25;
        }
        if(y<=10)
        {
            y=10;
        }
        pos(x,y);
        onChoose(x,y);
        sel=getch();
    }
    pos(0,30);
    white_back();//还原默认字体
    CloseHandle(hOut);//关闭标准输出句柄
    return 0;
}
//设置光标位置
void pos(int x,int y)
{
    COORD posPoint = {x,y}; //设置坐标
    SetConsoleCursorPosition(hOut,posPoint);
}
void blue_border()
{
    WORD blue=FOREGROUND_GREEN|FOREGROUND_BLUE|FOREGROUND_RED|FOREGROUND_INTENSITY|BACKGROUND_RED|BACKGROUND_GREEN;//设置字体颜色、背景颜色
    SetConsoleTextAttribute(hOut,blue);//字体样式
}
void white_back()
{
    WORD white=FOREGROUND_BLUE|FOREGROUND_GREEN|FOREGROUND_RED|FOREGROUND_INTENSITY;
    SetConsoleTextAttribute(hOut,white);
}
void cyan_choose()
{
    WORD cyan=FOREGROUND_GREEN|FOREGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_BLUE;
    SetConsoleTextAttribute(hOut,cyan);
}
void on_Select()
{
    WORD select=FOREGROUND_GREEN|FOREGROUND_INTENSITY|BACKGROUND_RED;
    SetConsoleTextAttribute(hOut,select);
}
void onChoose(int x,int y)
{
    if(x==25&&y==10)
    {
        on_Select();
        cout<<"1. 开始 ";
    }
    else if(x==25&&y==20)
    {
        on_Select();
        cout<<"3. 继续 ";
    }
    else if(x==65&&y==10)
    {
        on_Select();
        cout<<"2. 选择 ";
    }
    else if(x==65&&y==20)
    {
        on_Select();
        cout<<"4. 退出 ";
    }
}
void star()
{
    cyan_choose();
    pos(25,10);
    cout<<"1. 开始 ";
    pos(65,10);
    cout<<"2. 选择 ";
    pos(25,20);
    cout<<"3. 继续 ";
    pos(65,20);
    cout<<"4. 退出 ";
}

 

这是第三版,增加了大量关于键盘缓冲区操作和输入、输出操作的知识讲解,并修改了多处前两版中文字、语句错误的地方。 前两个版本由于我等级不够无法删除,此处留下前两版的地址,希望对大家有用。 第一版:http://download.csdn.net/source/3056070 第二版:http://download.csdn.net/source/3332359 以下为第三版本的目录: C/C++控制台界面编程(V 3) 1 目录 - 1 - 第一部分 控制台界面编程预备知识 1 1) Visual Studio 2005中控制台程序的类型 1 2) 转义字符及格式化输入、输出 1 a) 制表符\t 2 b) 回退字符\b 4 c) ASCII码表 6 d) 以%开头的格式控制符 9 e) 数据流的格式设置 10 3) C和C++库的输入、输出操作 12 a) stdio.h中的常用输入、输出函数 13 b) basic_stream中的输入、输出操作 13 4) 键盘缓冲区处理 15 5) 关于C/C++中的字符串拼接问题 17 6) 怎样从控制台复制粘贴文字 18 7) 将批处理bat转换为exe程序 18 8) 在Visual Studio 2005中设置控制台程序的图标 18 9) 重定向控制台程序的输出 19 第二部分 控制台界面编程详解 20 1) 概述 20 2) 控制台文本窗口编程的一般控制步骤 21 3) 控制台窗口操作函数 21 4) 文本属性操作 25 5) 文本输出 28 6) 文本操作示例 28 7) 滚动和移动 34 8) 光标操作 36 9) 读取键盘信息 37 10) 读取鼠标信息 44 11) 结束语 46 第三部分 附录 1 1) 分数等级划分工具 1 a) controlio.h文件 1 b) Main.c文件 5 2) 简易俄罗斯方块 6 a) 代码Main.c文件 7 3) 模拟实现可用鼠标、键盘控制的菜单和窗口 11 这是第三版,增加了大量关于键盘缓冲区操作和输入、输出操作的知识讲解,并修改了多处前两版中文字、语句错误的地方。 前两个版本由于我等级不够无法删除,此处留下前两版的地址,希望对大家有用。 第一版:http://download.csdn.net/source/3056070 第二版:http://download.csdn.net/source/3332359
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值