c++ - 在 C++ 中创建 WinAPI GUI 应用程序的现代 native 方式

标签 c++ winapi user-interface native

首先,我知道这是一个常见问题,但我找不到我正在寻找的确切答案。

我使用 Swing 完成了许多 Java 项目。从编写 GUI 代码开始,然后转向 GUI 设计人员。事实证明,这是构建 GUI 应用程序的一种非常快速简便的方法。

但是现在,我需要转向 C++。我正在开始一个使用大量硬件资源(DirectX、OpenCV 等)的项目,我知道这些技术有 Java 库。但是,考虑到这个项目的内部结构,C++ 绝对是正确的选择。

我通过 MCU 编程非常了解 C 和 C++ 语言。另外,我读过很多关于原生 WinAPI 编程、Windows 内部原理等方面的文章。我想我有足够的知识可以开始了。我不想过多担心 GUI 设计,但它必须看起来合适。

我知道有几个基本选项:Pure WinAPI、MFC、WTL、Qt...如果有某种 GUI 设计器工具我会很高兴,但根据我的研究,没有。有帮助创建基本窗口的 MFC 向导,但它不是设计器。我发现的最接近的东西是 Qt。但从我读到的,它没有使用 WinAPI 进行绘图,因为将来 Qt 编写的应用程序的外观和感觉可能与原生 Windows 外观不同。

所以,总结一下,如果您有使用 GUI 创建 native Windows C++ 应用程序的经验,您会向我推荐什么?具体来说,有没有我错过的工具或设计师?

(我正在使用 Visual Studio 2010 专业版,因为有了 DreamSpark 项目,我可以免费使用它)

最佳答案

我最近用过Qt4并对 API 感到非常满意。我发现它很简单,有据可查,而且代码非常简洁。

Qt 在模拟目标操作系统的外观和感觉方面做得非常好(正如@In silico 在评论中指出的那样,Qt 实际上自己绘制所有内容并且使用 native 组件)无论如何,这可以通过 IDE 中的 GUI 编辑器手动或可视化编码,Qt Creator .如果你走这条路,我建议在那里创建你的初始 GUI 项目(.pro 文件),然后通过 Qt Visual Studio Add-In 将其导入 Visual Studio .

Slots and signals ,Qt的事件/消息系统,也值得一提。是的,它对 GUI 编程至关重要,但在低级代码中也非常有用。

我希望 Qt 在您的项目中运行良好,但与往常一样,创建一些简单的测试以确保这些技术能够可行地协同工作。

关于c++ - 在 C++ 中创建 WinAPI GUI 应用程序的现代 native 方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9729849/

相关文章:

c++ - 将自己放入 chrooted 沙箱后如何(合法地)访问文件?

c++ - C++ 类中的 OpenCV 轨迹栏回调

c++ - 奇怪的着色器损坏

java - Wicket:在页面构造函数外部动态填充 RadioGroup

java - 如何在 Swing 中显示打印进度对话框?

java - Java中的简单下拉菜单

c++ - 如何在运行时确定 vector 大小?

c++ - 在 Windows 中使用 UTF8 字符串打开文件名

c++ - 包含窗口的自毁类

c - 对于 32 位提升的进程,OpenProcess 返回 ERROR_ACCESS_DENIED