永发信息网

c语言如何编写界面程序

答案:5  悬赏:50  手机版
解决时间 2021-11-11 10:10
c语言如何编写界面程序
最佳答案
一、C语言中要做图形界面,首先需要设置为图形模式,确定显卡类型,对屏幕进行初始化等等。
二、相关的函数如下:
1. detectgraph() 显示卡检测函数
2. initgraph() 图形初始化函数
3. getdrivername() 获取图形驱动程序名的指针
4. getgraphmode() 获取图形模式函数
5. getmoderange()获取模式值范围函数
6. getmaxmode()获取最大显示模式函数
7. getmodename()获取显示模式名函数
8. graphdefaults()图形设置复位缺省值函数
9. setgraphmode() 设置图形模式函数
10. restorecrtmode() 恢复文本显示模式函数
11. graphresult() 图形操作结果函数
12. grpaherrormsg() 图形错误信息函数
13. setgraphbufsize()设置图形缓冲区大小函数
14. setactivepage() 设置可输出显示页函数
15. setvisualpage() 设置可见显示页数
16. closegraph()关闭图形模式函数
全部回答
C语方下可以在文本模式下作出,也可以在图形模式下画出,用的是一些扩展库,就是说不是C标准库,下面给一个框架,不知道建不建议学,感觉过时了,看你自已的兴趣了,感兴趣下了功夫肯定能学好,因为它根本就不难,只不过用了些非标准库的所谓高级函数而已

#include
#include

#include
#define Key_DOWN 0x5100
#define Key_UP 0x4900
#define Key_ESC 0x011b
#define Key_ALT_F 0x2100
#define Key_ALT_X 0x2d00
#define Key_ENTER 0x1c0d

void box(int startx,int starty,int high,int width);

main()
{
int i,key,x,y,l;
char *menu[] = ;

char *red[] = ;
char *f[] = ;

char buf[16*10*2],buf1[16*2];

while(1)
{
textbackground(BLUE);
clrscr();
textmode(C80);
window(1,1,80,1);
textbackground(LIGHTGRAY);
textcolor(BLACK);
clrscr();
gotoxy(5,1);
for(i=0,l=0;i<8;i++)
{
x=wherex();
y=wherey();
cprintf("%s",menu[i]);
l=strlen(menu[i]);
gotoxy(x,y);
textcolor(RED);
cprintf("%s",red[i]);
x=x+l+5;
gotoxy(x,y);
textcolor(BLACK);
}
gotoxy(5,1);

key=bioskey(0);
switch (key){
case Key_ALT_X:
exit(0);
case Key_ALT_F:
{
textbackground(BLACK);
textcolor(WHITE);
gotoxy(5,1);
cprintf("%s",menu[0]);
gettext(5,2,20,12,buf);
window(5,2,20,9);
textbackground(LIGHTGRAY);
textcolor(BLACK);
clrscr();
box(1,1,7,16);
for(i=2;i<7;i++)
{ gotoxy(2,i);
cprintf("%s",f[i-2]);
}
gettext(2,2,18,3,buf1);
textbackground(BLACK);
textcolor(WHITE);
gotoxy(2,2);
cprintf("%s",f[0]);
gotoxy(2,2);
y=2;

while ((key=bioskey(0))!=Key_ALT_X)
{
if ((key==Key_UP)||(key==Key_DOWN))
{
puttext(2,y,18,y+1,buf1);
if (key==Key_UP)
y=y==2?6:y-1;
else
y=y==6?2:y+1;
gettext(2,y,18,y+1,buf1);
textbackground(BLACK);
textcolor(WHITE);
gotoxy(2,y);
cprintf("%s",f[y-2]);
gotoxy(2,y);
}
else
if (key==Key_ENTER)
{
switch ( y-1 ){
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
exit(0);
default:
break;
}
break;
}
else
if (key==Key_ESC)
break;
}
if (key==Key_ALT_X) exit(0);
break;
}
}
}
}

void box(int startx,int starty,int high,int width)
{ int i;
gotoxy(startx,starty);
putch(0xda);
for (i=startx+1;i putch(0xbf);
for( i=starty+1;i {
gotoxy(startx,i);putch(0xb3);
gotoxy(width,i);putch(0xb3);
}
gotoxy(startx,high);
putch(0xc0);
for (i=startx+1;i putch(0xd9);
return ;
}
貌似QT是C++, GTK是C.......
QT啊 不过安装QT环境有点复杂
GTK+ 去这本书的pdf看看吧 GTK+2.0编程范例
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
织梦DEDEcms系统模板安装后乱码
钢化玻璃有没有镀膜的?
什么是紫米?
大同草坪小学地址在什么地方,想过去办事,
怎么从石家庄到邢台南和?
天车是什么如何操作
七月份成熟的枇杷怎么吃
以降e为六级音的自然小调
大脑堵塞怎么办
smc模压玻璃钢化粪池和PE化粪池哪个贵
长汀县大同中心学校地址在哪,我要去那里办事
锡纸在厨房的用途
问一下今天深圳沙湾客运站到湖北天门的票价是
读“地球公转示意图”如图所示,回答:(1)
二胡中两音两弓拉成两音一弓了可以吗
推荐资讯
船过安仁 诗意
扬州东关街有个塔罗牌占卜的店,谁有那的照片
最好的笛子应该分配给谁
吉安市东兴汽车贸易有限公司地址在哪,我要去
想做一个正方形漏斗,上口1.2M,下口10MM,需
海尔空调商场地址在哪,我要去那里办事,
华阳去温江区华西康复中心怎么去
长期股权投资 入账价值和初始投资成本?
焊工都有哪些证
电冰箱门如何拆卸
野兽加天肖是什么动物
艾丽美容地址好找么,我有些事要过去,
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?