【问题标题】:native win32 gui programming in c++ or choose wxWidgets? [closed]c++原生win32 gui编程还是选择wxWidgets? [关闭]
【发布时间】:2010-11-22 21:31:34
【问题描述】:

我喜欢编写 GUI 软件(我没有 GUI 编程经验) 我需要它在一个独立的 exe 中尽可能小、快速的 GUI 和原生外观。仅在从 windows 2000 到 windows 7 的 windows 上(或任何它所称的)。 什么是最好的选择? win32 api 还是 wxWidgets?

【问题讨论】:

  • 您使用什么 IDE?视觉工作室?

标签: c++ user-interface winapi wxwidgets


【解决方案1】:

Win32,您的分发包中不需要 wxWidgets(它会很小)。这更难,但我认为它更好..

【讨论】:

    【解决方案2】:

    使用 wxwidgets。它比win32 api更简单..也可以看看QT它更容易更丰富。

    【讨论】:

    • 虽然 Qt 很好,但它不符合 OP 的“小”标准,因为它必须包含一堆 Qt DLL 或一个巨大的静态链接库。
    • 同意我错过了“小”点。
    【解决方案3】:

    大约两年前,我不得不做出类似的选择。我选择了 Win32 API。掌握老派的做事方式有一定的自豪感。

    顺便说一句,Windows API 以肮脏和糟糕的设计而著称。我不同意这一点。我发现它非常灵活且一致(大约 90%,因为向后兼容补丁确实有点污染它)。

    【讨论】:

    • API 绝不是一致的。例如,对于返回一个字符串,有多种不同的方法用于返回成功时的字符串长度或失败时所需的缓冲区大小。看起来每个开发者团体都有自己喜欢的方式来做这件事,而且他们都被允许有自己的方式。
    • 对于 dotnet 人来说学习 win32 太难了。但至少它是 Windows 的纯原生方式。
    【解决方案4】:

    你应该看看Windows Template Library (WTL)。

    【讨论】:

    • 从我读到的基于 atl 的内容,我有免费的 vc 版本,所以它不起作用
    【解决方案5】:

    如果您有可用的非免费版本的 Visual Studio,您最好的选择可能是使用 MFC(Microsoft 基础类)。这本质上是使用 Windows API,但更多的是 C++ 方式。

    【讨论】:

    • 我有免费版的visual studio
    • MFC 太可怕了。它到处都使用 hack,因为它是在 Microsoft C++ 编译器支持异常之前编写的。
    【解决方案6】:

    在 Windows 7 中,大部分 GUI API 不能直接用于 Win32 应用程序。相反,您需要 WPF(Windows Presentation Foundation)来访问一些新的 GUI 元素,这意味着您必须使用 C# 编写应用程序。

    当然,如果您以 Windows 2000 为目标,那么 WPF 就没有问题了。

    【讨论】:

    • 是否有 Windows 7 功能无法通过 WinAPI 获得的示例?我相信您可以通过 WinAPI 访问任何 Windows 功能。
    • 简单的 win32 api gui 应用程序无法在 windows 7 上运行?
    • 它肯定可以在 Windows 7 上运行。但是,某些高级 GUI 功能对于 Win32 应用程序(尤其是构建在 DirectX 上的所有 WPF 控件)并不容易使用。
    【解决方案7】:

    我认为最简单的方法是delphi:与gui-designer 合为一体的工具,不需要部署框架,适合初学者。

    visual studio.net 是更具视角的变体:健壮、广泛、良好的文档、优秀的社区。​​p>

    QtwxWidgets 是跨平台解决方案。但我认为这是更复杂的方式。如果急于在 ms windows 之外的其他东西上运行程序,这是可以接受的。

    【讨论】:

      猜你喜欢
      • 2010-09-17
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      • 2011-06-06
      相关资源
      最近更新 更多