我最近开始使用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;
}
我正在使用 Windows 7专业版。这与操作系统有关吗?
答案 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;
}