setbkcolor() 在 Dev-C++ 4.9.9.2 中无效
setbkcolor() ineffective in Dev-C++ 4.9.9.2
我最近开始使用 Dev C++ 4.9.9.2 来试验 C 中的图形程序(感谢这个 tutorial). But for some reason 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 Professional。这与操作系统有关吗?
documentation 在 Windows notes 部分说:
Also, only future drawing will use the new background color (anything currently drawn in the old background color will stay in the old color). Calling setbkcolor(0)
will change the background color to the current color at index [0]
of the palette (rather than always changing the background to black).
你误解了函数的目标。
因为 window 是在设置背景颜色之前绘制的。
设置背景颜色后使用 cleardevice() 重新创建屏幕。
#include<stdio.h>
#include<graphics.h>
int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
setbkcolor(GREEN);
cleardevice();
getch();
closegraph();
return 0;
}
我最近开始使用 Dev C++ 4.9.9.2 来试验 C 中的图形程序(感谢这个 tutorial). But for some reason 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 Professional。这与操作系统有关吗?
documentation 在 Windows notes 部分说:
Also, only future drawing will use the new background color (anything currently drawn in the old background color will stay in the old color). Calling
setbkcolor(0)
will change the background color to the current color at index[0]
of the palette (rather than always changing the background to black).
你误解了函数的目标。
因为 window 是在设置背景颜色之前绘制的。 设置背景颜色后使用 cleardevice() 重新创建屏幕。
#include<stdio.h>
#include<graphics.h>
int main()
{
int gd = DETECT, gm;
initgraph(&gd, &gm, "");
setbkcolor(GREEN);
cleardevice();
getch();
closegraph();
return 0;
}