如何在ANSI C中创建窗口应用程序?

时间:2009-11-07 22:03:42

标签: c user-interface

到目前为止,我一直只编写控制台应用程序,但我需要为学校作业编写一个简单的窗口应用程序。

有人能指点我一个很好的教程如何在ANSI C中创建窗口和其他普通的windows元素,如按钮,2d图形等?我应该使用一些好的图书馆吗?

我尝试使用谷歌搜索,但没有专门针对C的教程网站。

如果可以的话,我也会感谢一些示例代码。

谢谢。

顺便说一句,我使用Dec C ++。

8 个答案:

答案 0 :(得分:7)

GTK是一个很好用的库,但可以在Windows下提供非本机外观。它在GNU / Linux下看起来很棒,特别是使用GNOME。

它仅在C中实现(使用GObject类型系统,GLib库的一部分),因此它将非常适合您的需求。还有一个名为Glade的RAD工具。

答案 1 :(得分:6)

ANSI C标准中没有任何关于Windows的内容。如果要创建一个窗口化应用程序,则必须使用特定于平台的库(例如Win32CocoaX11),或者某种跨平台库,封装(例如SDLwxWidgets或更多)。

答案 2 :(得分:2)

http://support.microsoft.com/kb/829488也讨论如何创建

  

Windows应用程序:创建一个简单的   基于Microsoft Windows的应用程序。   应用程序文件包括a   包含一个的ProjectName.cpp文件   _tWinMain功能。您可以使用此类应用程序执行   基于图形用户界面(GUI)   编程。

至于教程...使用MSDN。 Win32 API C.您不需要“Win32 ANSI C教程” - 您需要Win32教程(例如http://www.winprog.org/tutorial/start.htmlhttp://www.functionx.com/win32/Lesson01.htm) - 当然,除非你不知道ANSI C,但你只需要寻找ANSI C教程。这些科目是独立的。

答案 3 :(得分:2)

常见的起点是Charles Petzold's Programming WindowstheForger's Win32 API Programming Tutorial

但是在大​​多数情况下,C不再是Windows开发的首选语言。面向对象技术更适合GUI开发,随着MFC的引入,C ++成为首选语言,后来成为.Net,C#和C ++ / CLI。

Win32 API可能很难工作,MFC的大部分都比Win32 API包装好一点,但.Net框架是从头开始设计的,并且不受Win32 API怪物遗留问题的影响,并且工作正常随之而来的往往会带来更高的生产力。

无论哪种方式,Dev-C ++都不是GUI开发的好工具。

答案 4 :(得分:1)

有许多优秀的图书馆 - 如果没有开始宗教战争就有太多明显的选择。我建议您在第一个库中学习一些适用于Windows,Linux或OSX的内容。这里有两个不错的选择,不一定是最好的,但广泛使用和个人的最爱:

  • Tcl/Tk。您可以使用Tcl脚本语言编写大部分应用程序,但是您可以轻松地将自己的ANSI C代码集成到Tcl中,Tcl从一开始就考虑到了这种集成。 Tk工具包非常容易学习,您可以在开始时使用纯Tcl编写许多简单的GUI。互动,简单,并得到很好的支持。

  • 如果您想用ANSI C编写所有内容,我不知道任何非常简单的选择,但我对wxwidgets非常满意。然而,所有这些工具都有一个相当陡峭的学习曲线。

答案 5 :(得分:1)

由于该语言的优势在于其他地方,因此没有多少普通的C GUI库。也许您应该考虑使用带有C绑定的语言,这样您仍然可以在C中进行数字运算,但是使用不那么痛苦的GUI开发?

如果您真的想要坚持使用C,您可以使用操作系统的本机API或我所知道的唯一当前的跨平台C GUI库:GTK +。如果你真的不需要GUI而只需要图形输出,我会选择SDL。

答案 6 :(得分:0)

我建议您下载Microsoft Visual Studio 2008 Express Edition并使用C#.Net。

答案 7 :(得分:-1)

如前所述,我建议您使用Winforms并切换到.Net环境。这是2009年,我认为有更合适的GUI解决方案:P

编辑:Nvm,没看到这是学校作业。

但是,这是Win32 API上的C ++指南:http://www.relisoft.com/win32/index.htm