学c语言如何做出有界面的程序

我是一个刚学C语言的初学者,要怎么样才能做出一个有界面的程序,不单单只是一个dos窗口呢?还需要学什么呢?

1、新建一个C项目,点击文件,新建,项目,选择C++Win32控制台应用。

2、在项目向导中设置,会默认生产一个项目框架。

3、可以使用color函数变化字体和窗口的颜色。

4、要在C语言中实现颜色的变化,需要引入windows.h头文件,即#include <windows.h>方可调用color函数,system("color 02")类似的,但不能先写一个循环,循环color 后面的颜色。但可以直接把color 02当作字符串来对待,对后两个字符串进行循环变化。

5、这里的测试代码如下所示:char a[9]="color 02";    int i;    for(i=0;i<=5;i++)    {        a[6]=(char)((int('0'))+i+2);     //颜色交替出现/背景颜色        a[7]=(char)((int('0'))+i);       //字体颜色        system(a);        system("cls");        printf("\n\n\n\n\n\n\n\n\t\t\4 \4 \4Welcome\4 \4 \4");        printf("\n\n\n\n\n");        Sleep(1000);                   //延时1秒        system("cls");    }   system("cls")。

6、而上面使用到的system("cls")是清屏函数,直接可以到cmd中输入cls即可实现清屏的功能。下面就是测试的效果了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-30
一、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()关闭图形模式函数
第2个回答  2011-01-23
C语方下可以在文本模式下作出,也可以在图形模式下画出,用的是一些扩展库,就是说不是C标准库,下面给一个框架,不知道建不建议学,感觉过时了,看你自已的兴趣了,感兴趣下了功夫肯定能学好,因为它根本就不难,只不过用了些非标准库的所谓高级函数而已

#include <process.h>
#include <dos.h>

#include <conio.h>
#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[] = ;
/* File 项的子菜单 */
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); /* ALT_X 则退出 */
case Key_ALT_F:
{
textbackground(BLACK);
textcolor(WHITE);
gotoxy(5,1);
cprintf("%s",menu[0]); /* 加黑 File 项 */
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); /*将下拉菜单的内容保存在 buf1*/
textbackground(BLACK);
textcolor(WHITE);
gotoxy(2,2);
cprintf("%s",f[0]);/*加黑下拉菜单的第一项 load file*/
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: /* 是子菜单项第一项:Load file */
break;
case 2: /* Save file */
break;
case 3: /* print */
break;
case 4: /* modify */
break;
case 5:
exit(0);
default:
break;
}
break;
}
else
if (key==Key_ESC)
break; /* 是 Esc 键,返回主菜单 */
}
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<width;i++) putch(0xc4); /* 画— */
putch(0xbf); /* 画┐ */
for( i=starty+1;i<high;i++)
{
gotoxy(startx,i);putch(0xb3); /* 画│ */
gotoxy(width,i);putch(0xb3); /* 画│ */
}
gotoxy(startx,high);
putch(0xc0); /* 画└ */
for (i=startx+1;i<width;i++) putch(0xc4); /* 画— */
putch(0xd9); /* 画┘ */
return ;
}
第3个回答  推荐于2017-12-16
如果你只是用普通的C语言编程工具编写的话,其实很麻烦,但还是可以的,#include<windows.h>要包含,然后按照创建窗口的方法创建就行了,很麻烦,如果你不了解winodows运行原理和编程原理你很难知道怎么去做一个实用窗口界面。。。不过有简单的方法,那就是不用C语言,改用MFC,Delphi,java,c#等专业的应用程序编程软件,C语言通常不用来做界面。。。。追问

但是我在看的那个视频说 学C语言之后再学JavaSe 和 JavaWeb 和sql数据库 就可以左出一个界面的程序了 这样是吗?

追答

如果你想做实际应用的电脑程序直接学java或C#.NET即可,根本也没必要绕圈子,其实做个界面很简单,创建个窗口插几个控件即可,只要你熟悉面向对象编程,也许你第一天就能学会,不过这和会编程还是差的远,编程不在于做界面什么的,你不会做只是你用的软件不支持可视化框架,需要你自己建框架,或者用第三方的,想做只需要用可视化编程软件即可。。。。
很多人天天用java,写界面数据库,他也不知道界面和数据库的原理,就像开车的不会修车造车一样,并不是什么好事。。。。如果想学的深,就一步步来,学C语言,C++,计算机原理,操作系统原理,windows系统编程,数据结构数据库。。。。如果你只是想搞些实用的,现在就能用的,不要求学的那么深,完全可以跳过C,直接java,他更像一个装配工厂,而不是制造工厂,你只要知道各个零件怎么用的,拼装成一个程序,没必要知道他是怎么实现的,但这样对于专业的高级软件工程师很不可取。。。。

本回答被提问者和网友采纳
第4个回答  2013-09-30

windows编程,或者MFC吧,我倒是有些学习视频,我是看了那几个视频才做了个windows播放器软件的

相似回答