【问题标题】:GUI Framework/Lib for C++ under Windows [closed]Windows 下 C++ 的 GUI 框架/库 [关闭]
【发布时间】:2011-01-15 07:02:39
【问题描述】:

我想知道除了 Windows 操作系统的 GUI 编程中的 WinForms 之外,微软是否有 MFC 的替代品?

我不想使用第三方 (Borland/Qt/wxWindows) 库。 WinForms 需要 .NET,这是一个主要问题(无法在目标机器上安装 .NET),而 MFC 对我来说很痛苦......

任何接近 Qt 但微软品牌的替代品?

如果有任何建议,我将不胜感激!

【问题讨论】:

  • 我很好奇,您为什么如此热衷于使用 MS 品牌的产品?我认识的大多数人都会要求完全相反的...
  • 您是否出于技术原因不想使用非 MS 库或偏好?
  • 客户端请求所有必须都是基于MS的...
  • 为什么会有微软的 MFC 替代品?你对 MFC 有什么看法?

标签: c++ windows user-interface


【解决方案1】:

我也建议 WTL。这是一个包含一些有用的 WTL 链接的列表:

  • MSDN 的 ATL 3.0 Window Classes: An Introduction - 了解基础知识。
  • Chris Sells、Dharma Shukla 和 Nenad Stefanovic part1part2 的 WTL 文章。 Nenad Stefanovic 是 WTL 之父。
  • Bjarke Viksoe 的WTL projects。 Bjarne 将他的许多小项目整合为一个完整的应用程序,一个 IDE - BVRDE
  • 代码项目的WTL page。特别注意Michael Dunn写的文章。 VMware Workstation 使用 WTL,Michael Dunn 为 VMware 工作。
  • Clipcode 的 WTL 开发人员指南(docpdfsource code)。

WTL开源应用,大家可以学习看看各种实现技巧:

【讨论】:

  • +1 有关您的建议的大量信息,OP 应该标记答案,因为问题已经过时了。似乎 OP 气馁并忘记了这是如此。
【解决方案2】:

试试WTL。这个库最初是由微软创建的,然后开源了。与 MFC 相反,许多开发人员报告了使用它的良好体验。它构建更轻量级的可执行文件,结构比 MFC 更好,但功能也不那么丰富。

【讨论】:

    【解决方案3】:

    我认为没有。您可以使用纯 WinAPI、ATL、WTL(在这种情况下祝您好运!)。

    你为什么不想使用 Qt?它是免费、开源且非常灵活的工具。

    【讨论】:

    • 为什么 - 客户要求仅 MS 技术/库和资源
    【解决方案4】:

    虽然我喜欢它并且已经广泛使用它,但是 WTL 是一个学习的过程,因为它的文档不是很好。 Code Project 上有一些很棒的“WTL for MFC Programmers”文章绝对是必读的。

    但是,如果您想从 MS 获得类似 Qt 的东西,那么恐怕您只剩下 MFC 了。好的,它很长,但是通过添加 VS2008 SP1 MFC Feature Pack,您可以创建带有功能区的类似 Office 2007 的应用程序。如果只允许 MS 非 .NET 技术,这可能是您的最佳解决方案。

    【讨论】:

    • 不幸的是,某些 mfc 类使用 .net .. sighs
    【解决方案5】:

    没有。不要浪费时间搜索。

    【讨论】:

    • 来自 MS 服务器的 WTL 下载链接:microsoft.com/downloads/…(顺便说一句,不是我拒绝了你)
    • 我认为这是一个很好的回应——除了 MFC 之外,真的没有“接近 Qt”的 MS 库。 WTL 很棒,但它不像 Qt 或 MFC 那样是一个应用程序框架。
    • 我同意 - WTL 不是一个应用程序框架,而且缺乏像样的文档使得学习曲线非常陡峭。
    • -1 因为这没有帮助。
    【解决方案6】:

    任何接近 Qt 但微软品牌的替代品

    如果您所说的“接近 Qt”是指在设计上与 Qt 相似,那么不 - 不存在。我用WTL,很喜欢,但是和Qt有很大的不同。

    【讨论】:

      【解决方案7】:

      您总是可以直接使用 Windows API 并绕过 MFC。

      【讨论】:

      • Ewwww。我们这里有一个使用直接 Win32 API 的程序,我是主要维护者。我想知道 API 设计者在抽什么烟,以及在哪里可以买到。
      • @DavidThornley api 设计者没有吸烟。具有不同 ABI 的两个组件以非托管方式(有 2 个)相互通信的唯一方法是平面 C 接口(又名 windows api),而 COM
      • @johnathon:我理解他们为什么需要保持这种状态,一旦首次发布。但是,我以前见过很好的平面 C 接口,但我觉得这不符合条件。
      • @DavidThornley 对于 api 并不像应有的“漂亮”这一事实,我并不反对你。但是您还必须考虑当时编译器的状态。他们无法使用我们今天拥有的编译器技术。我并不羡慕实现 api 的开发人员,因为这是微软仍然被鄙视的一件事,也是他们无法摆脱的一件事。尽管如此,一旦你掌握了使用 api 的约定,它就没有那么可怕了。事实上,我见过更糟糕的情况。
      【解决方案8】:

      我不明白。如果不是 Win32 或 MFC 或 Windows.Forms,那么根据定义,您要查找的是第 3 方。

      所有这些推荐 WTL 的人都在推荐你下载一些第三方项目的工具包并使用它。没关系,如果这就是你要找的。但如果你这样做,那么我强烈建议你看看 Qt 或 wxWidget。前者是您可以获得的功能最齐全的集合,后者是使用“更健全”的 API 绘制原生小部件。

      另外:WTL 可能可以从 MS 服务器下载,但它与 MS 支持的技术相去甚远。这是一个不受支持的插件。

      【讨论】:

      • 不过,WTL 可以作为“MS 技术”呈现给他的客户。它最初由 MS 开发,并在 MS 内部以及 Google、VMWare 和其他大型软件公司中使用。
      • 这实际上是不正确的。它是由当时是微软员工的 Nenad Stefanovic 开发的。不过,它从来都不是“微软技术”。人们通常认为,如果某个 MS 团队在 MS 服务器上发布了某些东西,那么这意味着它是一种官方支持的 MS 技术。它不是。在许多只考虑 MS 的公司中,这种区别非常重要。
      • 我不是说微软支持它,但它肯定不是 Nenad 的空闲时间项目,而是微软的产品。它最初是作为微软 SDK 的一部分发布的,是微软在开源许可下发布的(由微软的律师制作)。
      • @Shaun Nemanja Trifunovic 说了什么。
      猜你喜欢
      • 1970-01-01
      • 2013-01-24
      • 2010-09-20
      • 1970-01-01
      • 2011-10-26
      • 2017-10-11
      • 1970-01-01
      • 2012-04-02
      • 2012-03-26
      相关资源
      最近更新 更多