【问题标题】:Windows GUI applications in VisualStudioVisual Studio 中的 Windows GUI 应用程序
【发布时间】:2011-06-05 23:01:23
【问题描述】:

在 VS 2010 中使用 GUI 编写(希望是原生的)C++ 应用程序的有效方法是什么?

我记得大约 10 年前我在使用 MFC,今天有什么大的变化吗?

【问题讨论】:

标签: c++ windows visual-studio-2010 user-interface


【解决方案1】:

如果您想继续使用 Native API,那么 MFC 或普通的 Win32 API 仍然是一个不错的选择。
VS2010 中引入了新的控件,例如功能区控件。有一个tutorial on native development with VS2010 on MSDN。如果您使用的是 VS2010,您的本机程序还可以使用许多 C++0x 功能。

Qt 是另一个不错的选择,即使您不打算跨平台,但在这种情况下您很可能不会使用 VS 2010。该许可现在可免费用于 LGPL 的商业用途。

如果您要使用 Microsoft 的 WPF 等较新的框架,那么您将需要使用托管语言 (.NET)。另一个选择是适用于 Web 和应用程序的 Silverlight。 Silverlight 应用程序的优势在于,如果它们安装了 Silverlight,您甚至可以让它们在 Mac 上运行。 Winforms 仍然很容易编写代码,但大部分已被 WPF 取代。

除非您有充分的理由这样做,否则您可以使用 WPF 等框架而不是 MFC 更快地进行开发。即使您不知道托管语言。 (如果您不直接使用 C# 而不是 C++/CLI)。 WPF 还提供 GPU 加速。

【讨论】:

  • 嗯,WPF 是指托管应用程序?没有 .NET 也能工作吗?
【解决方案2】:

您可以使用 Windows 窗体或 Windows Presentation Foundation (WPF) - 在 VS2010 中,您可以使用其中任何一种来创建带有 GUI 的应用程序。至于哪个是最好的——我想这取决于你的具体需求,但我不能说,因为我只真正使用过 WinForms。但是,WPF 应用似乎有更多组件可供您使用。

【讨论】:

  • Windows 窗体正在逐步淘汰。 MFC/WPF 是要走的路。
  • @Peon:说 Windows 窗体正在“逐步淘汰”对我来说没有任何意义,但推荐 MFC。有什么不同?这两个库都不代表最新的技术,但都被大量软件积极使用。两者都不会很快去任何地方。
【解决方案3】:

只是为了完整性 - 不提倡它,wxWidgets 是一个跨平台的 GUI 工具集。

【讨论】:

    【解决方案4】:

    如果你真的想要原生,而且你真的想要 C++,你最好的选择是 WX。 MFC 有一些不错的控件等,但仍然缺乏完整的 UI 库的任何外观。它缺少任何布局管理器,周期,并且仍然受到作为 win32 C API 的基本包装器的影响。 WX 也有后一个问题,但已从 MFC 中大量清理并具有布局管理器。

    其他几个选项:

    您可以跳出 C++ 并使用其中一种 .NET 语言来使用其他更好的本机库。

    您可以使用仍然具有原生工具包(如 Qt 或 GTKmm)外观和感觉的跨平台库。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多