Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在C语言中,有什么好方法可以更快地改变背景颜色吗?_C_Windows_Background Color - Fatal编程技术网

在C语言中,有什么好方法可以更快地改变背景颜色吗?

在C语言中,有什么好方法可以更快地改变背景颜色吗?,c,windows,background-color,C,Windows,Background Color,我想在每次按键时用不同的颜色在控制台背景上的任何地方着色,但问题是它太慢了。我认为是循环导致了问题。有没有办法加快打印速度,或者有没有更好的方法给背景上色?下面是一个例子 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<conio.h> #define width 189 #define border 50 void setfullscreen() { k

我想在每次按键时用不同的颜色在控制台背景上的任何地方着色,但问题是它太慢了。我认为是循环导致了问题。有没有办法加快打印速度,或者有没有更好的方法给背景上色?下面是一个例子

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>
#define width 189
#define border 50

void setfullscreen()
{
    keybd_event(VK_MENU,0x38,0,0);
    keybd_event(VK_RETURN,0x1c,0,0);
    keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0);
    keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0);
}
void setcursor(int x, int y)
{
    HANDLE output =GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos = {x,y};
    SetConsoleCursorPosition(output,pos);
}

int main()
{
    setfullscreen();
    int x=getch();
    int count=3;
    while(1)
    {
        x=getch();
        for(int i=0;i<width;i++)
        {
            for(int j=0;j<border;j++)
            {
                count++;
                if(j<border/2)
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),count);
                    setcursor(i,j);
                    printf(" ");
                }
                else
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),count+50);
                    setcursor(i,j);
                    printf(" ");
                }   
            }
        }
    }
}
#包括
#包括
#包括
#包括
#定义宽度189
#定义边界50
void setfullscreen()
{
keybd_事件(VK_菜单,0x38,0,0);
keybd_事件(VK_返回,0x1c,0,0);
keybd_事件(VK_返回,0x1c,KEYEVENTF_KEYUP,0);
keybd_事件(VK_菜单,0x38,KEYEVENTF_KEYUP,0);
}
void setcursor(整数x,整数y)
{
句柄输出=GetStdHandle(标准输出句柄);
坐标pos={x,y};
设置控制台位置(输出,位置);
}
int main()
{
设置全屏();
int x=getch();
整数计数=3;
而(1)
{
x=getch();

对于(int i=0;我能给我举个例子吗?我在搜索它,但仍然不知道如何使用它。