setbkcolor()在Dev-C ++ 4.9.9.2中无效

时间:2015-08-24 13:49:53

标签: c graphics bgi

我最近开始使用Dev C ++ 4.9.9.2在C中试验图形程序(感谢这个tutorial)。但出于某种原因,setbkcolor()绝对没有任何作用。这是代码......

#include <stdio.h>
#include <graphics.h>
#include <conio.h>

int main()
{
    initwindow(800,600);
    setbkcolor(GREEN);   //FAILED. also tried "setbkcolor(2);"
    while ( !kbhit() ){}
    return 0;
}

这是输出:black colored screen still

我正在使用 Windows 7专业版。这与操作系统有关吗?

2 个答案:

答案 0 :(得分:1)

Windows说明部分中的documentation

  

此外,只有将来的绘图才会使用新的背景颜色(当前以旧背景颜色绘制的任何内容都将保留旧颜色)。调用setbkcolor(0)会将背景颜色更改为调色板的索引[0]处的当前颜色(而不是始终将背景更改为黑色)。

你误解了这个功能的目标。

答案 1 :(得分:0)

因为在设置背景色之前就已经绘制了窗口。 设置背景颜色后,使用cleardevice()重新创建屏幕。

#include<stdio.h>
#include<graphics.h>

int main()
{
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "");
    setbkcolor(GREEN);
    cleardevice();

    getch();
    closegraph();
    return 0;
}