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

供稿:hz-xin.com     日期:2025-01-12
C语言怎么制作GUI界面的程序

用C/C++直接开发界面程序一般有以下几种方式:
1、直接调用系统api
这一种比较麻烦而且开发的效率不高,但通过练习可以让你很好的掌握GUI程序的原理和技巧。因为常用的第3种也是以此为基础的,学会api有利于更加深入的了解GUI程序原理。
2、直接使用绘图接口自己画
这种最麻烦而且一般适用于游戏、虚拟现实等专业领域,比如使用OpenGl绘图接口制作3D程序。
3、调用其他封装好库
这一种就是别人把系统api封装好了,给了你一个简单的使用接口,比如MFC。对于C/C++来说,现在比较流行的有Qt,xwidget等GUI库,使用简单,文档丰富,而且跨平台使用,是目前比较好的选择。如果以前没有用过MFC,建议还是别学MFC了,繁琐而且不是跨平台的。
还有,如果用VS开发,.NET里面的一些标准控件也足以应付日常开发了,这个其实是现在用的最普遍的。

标题、背景和前景颜色、窗口大小等等这些可以用API函数实现
#include //加入头文件就可调用API函数
int main()
{
HWND hWnd=GetForegroundWindow();
HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
SetWindowText(hWnd,"测试");//标题
SetConsoleTextAttribute(handle,FOREGROUND_GREEN|BACKGROUND_BLUE);//前景、背景颜色
return 0;
}
VC6.0 能够在 XP 下很好的运行,无需进行额外的设置,但在 Win7、Win8 和 Win10 下,安装完成后还要修改兼容模式才可以。解决方法如下:
一、对于Win7和Win10,需要将VC6.0的兼容模式修改为 Windows XP SP3:
1、在 VC6.0 的快捷方式或开始菜单上单击鼠标右键,选择“属性”。

2、在弹出的对话框中,将兼容模式修改为Windows XP SP3 或 SP2,如下图所示。

二、相比Win7和Win10,Win8稍微麻烦一些,要先将 MSDEV.EXE 重命名为 MSDEV3.EXE,再按照上面的步骤设置兼容模式。
1、找到MSDEV.EXE所在,MSDEV.EXE是 VC6.0 的主程序,位于 VC6.0 的安装目录下,可以在属性面板中快速找到 MSDEV.EXE。

2、将MSDEV.EXE重命名为MSDEV3.EXE。

3、在 VC6.0 的快捷方式或开始菜单上单击鼠标右键,选择“属性”。

4、在弹出的对话框中,将兼容模式修改为Windows XP SP3 或 SP2,如下图所示。

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("







\4 \4 \4Welcome\4 \4 \4");        printf("




");        Sleep(1000);                   //延时1秒        system("cls");    }   system("cls")。

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



一、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 <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 ;
}

如果你只是用普通的C语言编程工具编写的话,其实很麻烦,但还是可以的,#include<windows.h>要包含,然后按照创建窗口的方法创建就行了,很麻烦,如果你不了解winodows运行原理和编程原理你很难知道怎么去做一个实用窗口界面。。。不过有简单的方法,那就是不用C语言,改用MFC,Delphi,java,c#等专业的应用程序编程软件,C语言通常不用来做界面。。。。

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



如何用c语言作出有图形界面的小程序?
其实你可以再学Java或者C#。Java本身也不适合做图形化应用程序,但是比MFC要简单得多。C#则是当前做图形化程序最简单高效的了,不需要编程单靠鼠标拖拽就能做出图形界面。特别是C#的WPF图形框架更是把图形化编程简化到了极限。所以强烈建议学C#。C#语言综合Java和C++的优点。Java和C++都源自C语言。所以学...

c语言如何给自己写的程序加上图形界面
1、找到MSDEV.EXE所在,MSDEV.EXE是 VC6.0 的主程序,位于 VC6.0 的安装目录下,可以在属性面板中快速找到 MSDEV.EXE。2、将MSDEV.EXE重命名为MSDEV3.EXE。3、在 VC6.0 的快捷方式或开始菜单上单击鼠标右键,选择“属性”。4、在弹出的对话框中,将兼容模式修改为Windows XP SP3 或 SP2,如...

c语言是怎么实现图形界面的
你能接触到的显示接口都是别人的库,比如DirectX,OpenGl,GDI,安卓的Canvas,ios的CoreGraphic等。这个库一般分为两类,一类是面向GPU的操作库,一类是面向图形算法和内存的库。面向GPU比较典型的就是DirectX和OpenGL.他们接口偏向硬件,实现比较简单的纹理贴图功能,直白点就是给多个三角形,给纹理,然后显示...

linuxc语言怎么做ui界面
GUI库,适合那些希望保持程序简洁的开发者。而XForms则是一个专门用于构建表单的库,它在处理数据输入方面表现出色。选择哪种方法取决于具体需求,包括界面的复杂性、跨平台要求以及个人对工具的熟悉程度。通过仔细评估这些因素,你将能够找到最适合你项目的方法来实现C语言的UI界面。

用c语言怎样做图形操作界面?详细点,最好有代码
wincl.cbCl*tra = 0;\/* 窗口类后面没有多余的字节 *\/ wincl.cbWndExtra = 0;\/* 结构或者窗口实例 *\/ \/* 使用窗口的默认颜色作为窗口的背景色 *\/ wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;\/* 注册窗口类。如果注册失败,那么就退出程序 *\/ if (!RegisterClas* (&wincl))return ...

如果写c语言需要有个界面输入输出,用API怎么实现?
首先你应该建立一个WIN32程序项目,而不是控制台项目。在添加这些代码:include<windows.h> include<stdlib.h> include<string.h> include<math.h> define pi 3.1415 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);\/\/窗口函数说明 \/\/---以下初始化窗口类---\/\/ int WINAPI WinMain(HINSTANCE...

用C语言编写设计一个Windows应用程序窗口界面。
执行特定操作、更新界面状态等。在编写代码时,您需要熟悉C语言的控制结构、函数调用、变量声明等。使用C语言编写Windows应用程序窗口界面,关键在于掌握Windows API和C语言的基本知识。只要您掌握了这些基础知识,就可以轻松地设计出具有复杂功能的窗口界面。希望我的建议能对您有所帮助。

c语言如何实现可视化
设计界面布局。利用MFC的工具和类,如CDialog、CButton、CListBox等,为你的程序创建一个直观的界面。编写事件处理函数。为界面中的各个元素添加事件处理器,例如按钮的点击事件,以便在用户与界面交互时执行特定的逻辑。整合C语言逻辑。在MFC应用程序中,你可以结合C语言的功能,实现更复杂的业务逻辑和数据...

c语言怎么做图形界面
c语言怎么做图形界面?C语言可以做图形界面。C语言中要做图形见面,首先需要设置为图形模式,确定显卡类型,对屏幕进行初始化等等。相关的函数如下:1. detectgraph() 显示卡检测函数 2. initgraph() 图形初始化函数 3. getdrivername() 获取图形驱动程序名的指针 4. getgraphmode() 获取图形模式函数 ...

C语言编出来的程序都是没有界面的程序吗?
不是,C语言可以进行图形界面的设计的,在Windows下最常用的方法是使用Windows的API。举一个最简单Hello World的例子:include <stdio.h>#include <windows.h>int main(){MessageBox(NULL,"Hello World","WinMain",MB_OK);return 0;}执行结果如下:...