在Win32 C ++中创建GUI

时间:2014-02-14 13:18:47

标签: c++ user-interface 2d

我正在开发我的第一个Windows桌面应用程序,而我正在试图找出创建程序GUI的最佳方法。

我知道,我知道......考虑到SO上有关该主题的数据量,我觉得很愚蠢。然而,大多数答案似乎已经过时,我不确定它们是否适合我的具体项目。另外,Windows 8“metro应用程序”的教程也会堵塞我的Google搜索结果,这不是我想要的。

我使用Visual Studio。我已经按照教程了。我有基本的C和Java知识以及丰富的PHP经验。我很高兴学习C ++,所以我不是在寻找GUI来创建GUI(比如WinForms)。我现在也不关心托管代码和可移植性,特别是因为我试图避免依赖(即用户必须安装.NET)。只要它在Vista上运行顺畅,我很高兴。

该应用程序

该软件将向孩子们传授基础物理知识。我想创建一个主区域和侧边栏。主要区域将包括物理动画,比如弹跳球,以及一些Q& A。用户可以放大动画来测量一些东西并回答问题。用户可以在侧栏中跟踪他们的进度。这就是它。

到目前为止我发现了

我对MSDN感到有点沮丧。他们的大多数示例都以四种不同的语言(C#,C ++等)提供。我似乎无法从他们那里得到更多的Hello World代码。

我在MSDN上找到了一个GDI API,对我来说这似乎是一个好的开始。但是我已经阅读了很多关于SO的答案,说在纯C ++中创建布局真的很难,我们最好使用像ATL和WTL这样的框架。由于我还要创建(有点互动)动画,我想知道我是否应该使用像Direct2D这样的游戏目标API。

由于所有这些对我来说都是新的,并且有很多选项,我不知道从哪个开始我的特定应用程序。任何提示将不胜感激!

5 个答案:

答案 0 :(得分:4)

使用原始 Win32 API(无其他下载或第三方帮助程序):

这是一个很好的入门(介绍对话框,文本框,按钮等):theForger's Win32 API Tutorial

这里是你去的地方(数字上下,列表框,组合框,工具提示等):Common Controls on MSDN。其中大部分要求您#include <commctrl.h>

我还发现这是一个很好的资源,涵盖了其他两个没有的内容:Win32 Developer - Window Assets

但Win32 API看起来并不像你想要的那样。适用于儿童的物理应用程序应具有比API所能提供的更直观的GUI。祝你好运!

答案 1 :(得分:3)

如果您可以添加额外的框架,我建议您查看QT:http://qt-project.org/

它允许仅从代码创建GUI,具有良好的结构,并且如果需要,还具有用于2D绘图的界面。

如果您担心依赖关系,则只需将QT dll包含在可执行文件中;用户无需安装。

答案 2 :(得分:0)

要开始使用,请参阅我的(旧)教程 "Lessons in Windows API Programming"

但是你真的需要一本好书,比如Charles Petzold经典的“编程Windows”第5版或更早版本。

最新版本的问题在于它适用于C#和.NET,而Charles在错误的时间抓住了“新方式”的尾巴......


免责声明:我没有查看版本号的详细信息。

答案 3 :(得分:0)

为什么不使用一些2D C ++游戏引擎,如HGE:http://hge.relishgames.com/overview.html

答案 4 :(得分:0)

使用Windows API是最简单的,但生成高级GUI可能需要很长时间。 Microsoft基础类是使Windows Api更加用户友好和OOP的方法。任何人都有使用MFC的经验吗?