控制台界面刷新(C/C++版)

发布时间 2024-01-08 15:57:19作者: 熊本熊の熊

1.界面整体刷新

应用:界面间相互切换的时候

例如:登录界面场景,切换为主操作界面场景(根据不同角色,提供不同操作界面)

#include<windows.h>
#include<stdio.h>

void main(){
    /*
    * 渲染界面一
    */
    printf("hello world!!");    
    Sleep(1000);

    /*
    * 清空界面,并渲染界面界面二
    */
    system("cls");
    printf("good bye !!");

    system("pause");
}

 

2.界面局部刷新

应用:界面上数据更新

例如:扑克牌框框是一样的,里面的数字不同。只刷新数字,或者图案等,进行替换。

原理:利用win自带的光标跳转至想修改的位置(x,y坐标系),输入新字符,已达到替换的目的。

备注:输入退格符,可实现删除字符功能

#include<windows.h>
#include<stdio.h>


void showPartRefreshView(){
     /*
    * 渲染界面一
    */
    printf("hello world!!");    
    Sleep(1000);
    
    //将光标移动至需要修改的地方    
    int x = 5;   //第六列
    int y = 0;   //第一行
    COORD pos = {x,y};
    HANDLE win_dle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(win_dle,pos);

    //将hello和world中间空格替换为逗号
    printf(",");

    //将光标移动至末尾    
    x = 12;   //
    y = 0;   //
    COORD pos_end = {x,y};
    win_dle = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleCursorPosition(win_dle,pos_end);
}