在svga下 怎么在显示图片的时候同时还可以画图用鼠标等等功能
我用svga显示图片 但是vga里的画图函数库不能用了 想改背景色 图形界面的背景一直是橙色的 不知为何改不了 除了一个点一个点的画除来(这也太慢吧..)有没有什么函数svga也能用的啊 附部分程序如下 顺便说下 那个setcolor() 还是有用的 可以改变画线的颜色(是通过改变画点的颜色改的吧) 但setbkcolor()没用 (BYTE表示 unsignedchar)void main()
{
setSVGAmode();
printpic(0,0,"c:\\0.bmp",1); //函数略长 未给出
setwritemode(3);
setbkcolor(3); //这个没用 不知为何
setcolor(2); //这个倒是有用 ... 但是有人知道各颜色值么 我一个个试的..
lines(0,60,60,60);
getch();
closegraph();
exit(0);
}
void setcolor(BYTE col) //此处color及下面bkcolor都是BYTE全局变量
{
color=col;
return;
}
void setbkcolor(BYTE col)
{
bkcolor=col;
return;
}
void setwritemode(int m)
{
writemode=m;
return;
}
void putpixel(int i,long int j) //画点函数
{
long int pos;
int page;
BYTE far *point=(BYTE far *)0xA0000000L;
if(i>XM || i<X || j<Y || j>YM)
{
return;
}
pos=j*640+i;
page=pos/65536;
if(page!=pageold)
{
selectpage(page);
pageold=page;
}
switch(writemode)
{
case 0:
*(point+pos)=color;
break;
case 1:
*(point+pos)^=color;
break;
case 2:
*(point+pos)&=color;
break;
case 3:
*(point+pos)|=color;
break;
}
return;
}
void lines(int x0, int y0, int x1, int y1)
{
float X,Y,L;
X=abs(x0-x1);
Y=abs(y0-y1);
if(X>Y)
{
for(L=X,X=(x0<x1?x0:x1);L>0;L--)
{
X=X+1;
Y=(X-x0)*(y1-y0)/(x1-x0)+y0;
putpixel(X,Y);
}
}
else
{
for(L=Y,Y=(y0<y1?y0:y1);L>0;L--)
{
Y=Y+1;
X=(Y-y0)*(x1-x0)/(y1-y0)+x0;
putpixel(X,Y);
}
}
return;
}