我如何在C中进行GUI编程?
我想用C编写graphics编程。我search了很多关于编译器的知识,这些编译器提供了一套丰富的用C编写GUI编程的函数,但是我找不到任何东西。
基本上我想绘制button,然后接受来自用户的select,并采取适当的行动。 如果你能build议一个C编译器或者一个我可以添加到我的编译器中的库,那将是有帮助的。 我正在使用Windows操作系统。
目前,我正在使用不支持直接创buildbutton的TURBO C编译器。 任何帮助,将不胜感激。
这是保证与编译器无关的。 所有的编译器都是编译它们给出的代码。 你正在寻找的是一个GUI库,你可以使用任何你想要的编译器编写代码。
当然,这就是说,你的第一笔业务应该是沟渠Turbo C.编译器大约20岁,继续使用它并不是对你有任何好处。 你不能编写现代的 GUI应用程序,因为它只会产生16位代码。 所有现代操作系统都是32位的,现在很多都是64位的。 还值得注意的是,64位版本的Windows本身不会运行16位应用程序。 你需要一个模拟器 如果您只能编写在DOS模拟器中工作的应用程序,那么实际上并不会产生太多的成就感。 🙂
微软的Visual Studio Express C ++ 可以免费下载 。 它包含了套件完整版本中的相同编译器。 C ++包也编译纯C代码。
而且由于你在Windows上工作,Windows API是一个自然的select。 它允许您编写可访问全套GUI控件的本地Windows应用程序。 你可以在这里find一个很好的教程 ,用C编写WinAPI应用程序。如果你select使用Visual Studio,它还包含一个空白的WinAPI应用程序的样板代码,可以让你快速启动并运行。
如果你真的关心学习这样做,查尔斯Petzold的编程Windows是主题的规范资源,绝对值得一读。 整个Windows API都是用C语言编写的,完全可以使用C语言编写全function的Windows应用程序。不需要使用C ++。
至less, 我是这么做的。 正如其他答案所示, GTK也是一个选项。 但是它产生的应用程序在Windows上看起来是非常糟糕的。
编辑:噢,亲爱的…看起来你不是一个人想要使用陈旧的编译器编写“GUI”应用程序。 Googlesearch会出现以下库: TurboGUI:Turbo C / C ++的GUI框架 :
如果你是另一个陷入绝望的印度学校系统的穷人,被迫使用Turbo C来完成你的教育,这可能是一个select。 我不喜欢推荐它,因为一旦你gradle,学习解决它的局限性对你来说是完全没有用的 ,但是如果你感兴趣的话,显然它在你身边。
用C语言创buildGUI的最着名的库肯定是GTK 。
有了这个库,你可以轻松地创build一些button(例如)。 当用户点击button时,会发出一个信号,您可以编写一个处理程序来执行一些操作。
在主要function中使用win API:
- RegisterClassEx()注意:你必须提供一个指向一个函数的指针(通常叫做WndProc )来处理Windows消息,比如WM_CREATE,WM_COMMAND等
- CreateWindowEx()
- 的ShowWindow()
- UpdateWindow()
然后写另一个处理win消息的函数(在#1中提到)。 当你收到消息WM_CREATE时,你必须调用CreateWindow()。 类是什么控制窗口,例如“编辑”是一个文本框和“button”是一个..button:)。 您必须为每个控件指定一个ID(您所select的唯一但唯一)。 CreateWindow()返回该控件的句柄,需要记住。 当用户单击某个控件时,将收到带有该控件的ID的WM_COMMAND消息。 在这里你可以处理这个事件。 您可能会发现有用的SetWindowText()和GetWindowText() ,它允许您设置/获取任何控件的文本。
您将只需要win32 SDK。 你可以在这里得到它。
C是更多的硬件编程语言,C,GTK,Glade等都有简单的GUI构build器。问题是用C编写一个简单易用的程序,使GUI成为一个简单的部分,难的部分是把两者结合起来,把你的程序和GUI之间的接口搞得很头疼,而不同的GUI使用不同的方式,有的抛出全局variables,有的使用槽。 这将是很好的一个GUI生成器,将很容易地绑定您的C程序variables和输出。 当你克服内存分配和指针时,CLI编程很容易,GUI可以使用一个使用拖放的IDE。 但是,我认为这可能会更简单。
Windows API和Windows SDK,如果你想自己构build一切(或) Windows API和Visual C Express 。 获得2008版。 这是一个完整的IDE和微软的Windows开发的一个非凡的一块软件。
所有操作系统都用C语言编写。因此,用C语言编写的任何应用程序,控制台/ GUI都是操作系统的标准写入方式。
AC编译器本身不会为您提供GUIfunction,但有很多这样的事情库。 最stream行的可能是GTK + ,但是如果您刚刚起步并想要快速启动GUI并运行,可能会有些复杂。
对于一些简单的东西,我会推荐IUP 。 有了它,你可以使用一个简单的GUI定义语言,称为LED来布局控件(但是如果你愿意,你可以用纯C来做)。