GTK就可以,一个基于C语言的免费、开源、跨平台图形工具包,可以直接使用C语言调用实现图形界面开发,下面我简单介绍一下这个工具包的安装和使用,这里以Windows平台为例:

1.首先,下载GTK安装包,这个可以直接到CSDN上下载,一个zip压缩包,直接解压就行,地址https://download.csdn.net/download/qq_34816564/10925737,解压后的文件如下:

2.接着我们需要将bin目录添加到环境变量中,之后打开CMD窗口,输入命令“pkg-config --cflags gtk+-3.0”,若出现以下界面,则说明配置成功:

这里我们也可以查看一下GTK自带的Demo,运行命令“gtk3-demo”就会弹出Demo对话框,这里包含有所有官方自带的示例,双击就可查看运行效果:

3.接着我们就可以配置Code::Blocks(VS,Dev-C++等软件也行)实现C语言开发图形界面了,这里主要是引入GTK头文件和运行库,具体步骤如下:引入GTK头文件:点击菜单栏“Settings”->"Compiler...",在编译器中添加一行命令“`pkg-config --cflags gtk+-3.0`”,注意有`,如下:

引入GTK运行库:还是在刚才的设置中,选择链接器,添加一行命令“`pkg-config --libs gtk+-3.0`”,注意也是`,如下:

最后就是编写C语言程序调用GTK开发图形界面了,这里需要先引入gtk.h头文件,之后就是调用相关控件,测试代码如下,非常简单,一个窗口程序:

程序运行效果如下,还不错:

至此,我们就完成了使用C语言来调用GTK开发图形用户界面。总的来说,整个过程非常简单,官方也给出了详细的用户使用文档和示例,非常适合初学者学习,不过,使用C语言开发图形界面的效率比较低,可以考虑使用一下Qt,C#等,效率能更高一些,网上也有相关资料和教程,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言。

https://www.toutiao.com/a6682723993356599556/

C语言从底开始写图形界面(现在基本不采用)

FC十大中文游戏,有魂斗罗系列、赤色要塞、重装机兵、淘金者、超级马里奥兄弟、坦克大战、松鼠大作战、恶魔城、俄罗斯方块等等,这些FC经典游戏基本都是采用从底层直接写图形。

使用第三方库

用图形库是EsayX,支持VC++,VS,底层还是windows编程。操作简单,实用性方便。(近期写的电子相册如下)

特别说明:学习C/C++基础的时候,我们调用的是dos 窗口,windows自带的终端处理窗口,是没有属于自己的可视化窗口。

想必你问的是windows上用C实现图形界面,另外有些回答说C必须调用库才能实现图形界面。看得出,很多都是没有写过驱动的。首先,我们有一个显示器,显示器是一个个小点组成的。显示器有很多种接口,CPU/GPU通过这个接口(操作寄存器)和显示器通讯,在上面画上一个个点。然后点连成线,点变成圆。。。等等基本图形,把这些封装成函数,加之封装填充之类的函数,构成了最底层的GUI。后面又经过抽象,有图层等的概念。这就是图形库了。然后各种语言调用图形库完成显示。C语言完全可以从底开始写图形界面。但是没必要。

你能接触到的显示接口都是别人的库,比如DirectX,OpenGl,GDI,安卓的Canvas,ios的CoreGraphic等。

这个库一般分为两类,一类是面向GPU的操作库,一类是面向图形算法和内存的库。

面向GPU比较典型的就是DirectX和OpenGL.

他们接口偏向硬件,实现比较简单的纹理贴图功能,直白点就是给多个三角形,给纹理,然后显示。你可以拿着其他工具导出的模型(三角形和贴图定义),预先加载特定的纹理之后,作简单移动,缩放等操作。各种矢量变化控制工作由CPU端完成,而数据量较大的纹理贴图由GPU完成。

而GDI或者安卓的Canvas,ios的CoreGraphic是比较复杂的二维图形算法集成库,一般都是在CPU端作很多工作,然后把工作结果以内存帧的方式提交给GPU。这种方式下,CPU和GPU之间的传输带宽,以及你的工作机制非常影响速度。比如,安卓的SurfaceView画整屏会比更新局部的操作慢很多。

devc语言图形编程教程_C语言是怎么实现图形界面的?相关推荐

  1. c语言万能编程模板_C语言程序设计50例(经典收藏)

    本篇文章是对C语言程序设计的50个小案例进行了详细的分析介绍,需要的朋友参考下 [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位 ...

  2. c语言图形编程烟花,C语言教你写个‘浪漫烟花‘---特别漂亮

    效果展示 动态图 总体框架 /***************************************** *            项目名称:浪漫烟花 *            项目描述:贴图 ...

  3. c语言代码运行成图指令代码,C语言图形编程代码.doc

    C语言图形编程代码 C语言图形编程代码 自己以前编写的C语言图形编程代码 自己以前编写的图形编程代码实现DOS下256BMP图片显示,中文注释,中文汉字显示 写的不好,给大家交流与学习,TC3.0与T ...

  4. c语言编程基础课件,第7章_C语言图形编程基础课件

    第7章_C语言图形编程基础课件 狭义的组织变革是指组织根据外部环境的变化和内部情况的变化及时地改变自己的内在组织结构,以适应客观发展的需要. 狭义的组织变革是指组织根据外部环境的变化和内部情况的变化及 ...

  5. c 语言绘图函数,c语言图形编程(三、绘图函数-)(C language graphics programming (three, drawing function -)).doc...

    c语言图形编程(三.绘图函数-)(C language graphics programming (three, drawing function -)).doc c语言图形编程(三.绘图函数-01) ...

  6. Easystructure教程_C语言源代码自动生成流程图

    目录 Easystructure教程_C语言源代码自动生成流程图 1. 简介 2. 下载 3. 安装 4. 使用 5. 其他软件推荐 5.1 Mermaid 5.2 Code2flow ** Easy ...

  7. C语言图形编程(绘图函数部分),C语言图形编程(三、绘图函数-02)12

    C语言图形编程(三.绘图函数-02)12 } 84. putimage() 输出图像函数 功能: 函数putimage()将一个先前保存在内存中的图像输出到屏幕上. 用法: 此函数调用方式为void ...

  8. c语言教学知识,C语言的编程教程_入门教学知识

    C语言的 点击这儿查看什么是XML C#提供了许多相关类处理Xml数据,如处理stream的类: XmlReader和XmlWriter: DOM的类:XmlNode.XmlDocument和XmlE ...

  9. c语言二维图形变换程序,C语言图形编程(五、二维图形变换-01)(国外英文资料).doc...

    C语言图形编程(五.二维图形变换-01)(国外英文资料) C语言图形编程(五.二维图形变换-01)(国外英文资料) The first user coordinates to the screen c ...

最新文章

  1. win7网络中能看到计算机但无法连接,win7局域网内可以看到对方计算机但无法连接怎么办...
  2. 神经网络中的注意力机制总结及PyTorch实战
  3. 连接相机无法识别_车牌识别一体机在汽修门店安装中要注意的事项
  4. leetcode 714. 买卖股票的最佳时机含手续费(dp)
  5. 作者:刘建楠(1963-),男,就职于中国石油天然气股份有限公司庆阳石化分公司...
  6. 简单的excel上传解析和错误反馈信息下载
  7. Win下JDK的安装和简单使用教程
  8. 关于 Windows6.1-KB2999226-x64.msu 此更新不适用你的计算机解决办法
  9. Android基础入门教程——10.3 AudioManager(音频管理器)
  10. Spring Cloud技术栈简述
  11. 织梦建站教程:文章列表隔行换色 隔5行横线
  12. 计算机音乐专业考研,武汉音乐学院2021年硕士研究生招生考试《计算机音乐作曲》考试大纲...
  13. PLC单片机实验开发设备
  14. 用Java实现杨辉三角
  15. 正当防卫裁判要旨16条
  16. 远驱240控制器调整参数_制冷系统高低压压力保护控制器工作原理与设定方法
  17. 标准化、归一化、规范化区别
  18. 【MoveIt】入门教程-第一章(上)Move Group C++ Interface(官方教程翻译+个人补充)
  19. 热血江湖服务器位置,热血江湖服务器地理位置
  20. python如何读取文件中第一行的元素_python txt读取第一行数据库

热门文章

  1. 深度丨人大宋睿华:自然语言理解的重大突破为何是多模态?
  2. labview转子动平衡采集与分析源码,需要的赶紧联系我吧 信号源支持ni采集卡,串口采集卡,仿真
  3. Box2dFlash应用坑——刚体始终锁定旋转角度
  4. 电力电子技术仿真 三项桥式全控整流电路Simulink(带感容滤波结构)
  5. 智能运维应用之道,告别企业数字化转型危机
  6. eaby技术架构变迁
  7. 虾皮的引流方式有什么?如何对虾皮进行引流
  8. Python完成毫秒级抢单,助你秒杀淘宝大单
  9. 开放 mm1接口发送彩信(也就是GPRS modem发送彩信) 代码 c#版
  10. Swing学习系列 -- Swing读书笔记目录