【问题标题】:User Interface Controls for Win32Win32 的用户界面控件
【发布时间】:2010-09-08 22:54:18
【问题描述】:

我看到很多 .NET 的用户界面控件库,但是我在哪里可以使用简单的 C/C++ 获得类似的 win32 内容?

更漂亮的按钮、刻度盘、列表视图、图表等。

似乎每个 Win32 程序员的通行权都是最终编写自己的集合。 :/


请不要使用 MFC 控件。我只做纯C/C++。话虽如此,我也不想为我的应用程序添加一个数兆字节的框架,以便我可以拥有一个更漂亮的按钮。


我很抱歉遗漏了一个小细节,那就是我的开发是为 Windows Mobile 开发的。

所以清单文件已经出来了。

我只是注意到有多少开发公司为制作漂亮的 .NET 组件而疯狂,并且想知道等效的 C/C++ Win32 组件都去了哪里?

我了解到有多少人最终编写了自己的渐变按钮类等。所以你会认为这些东西会有一些商业类。这很奇怪。

我将仔细研究 QT 并研究它对此类事物的 GUI 支持。当您是您自己的 uISV 中的一个人时,这就是挑战。没有其他开发人员可以帮助您“完成工作”。

【问题讨论】:

    标签: c++ winapi user-interface


    【解决方案1】:

    如果你不介意使用 MFC 库,你应该试试 Visual C++ 2008 Feature Pack

    【讨论】:

      【解决方案2】:

      Stingray

      CodeJock - 用于 MFC/C++ 的工具包专业版

      【讨论】:

      • 我在台式机上使用 Stingray,在 Windows CE 和移动设备上使用旧版本。如果你喜欢 MFC,那就太好了,如果你想要跨平台支持,不喜欢大型框架,也不喜欢 MFC,那就不好了。 RogueWave 不支持移动设备,我必须修改旧的 CE 版本才能使其正常工作。
      【解决方案3】:

      The Code Project 有很多用于 C/C++ 的 UI 控件

      他们中的大多数都专注于 MFC 或 WTL,但也有一些是纯粹的 Win32

      顺便说一句,如果你不使用框架,你真的应该考虑 WTL 而不是纯 Win32。它的开销很低,而且生产力提高了大约一百万倍。

      【讨论】:

        【解决方案4】:

        MFC 功能包源自BCGSoft components

        【讨论】:

          【解决方案5】:

          使用 winAPI,您几乎可以做任何您想做的事情,而且速度也非常快。这需要一些时间才能弄清楚,但它确实有效。转到 MSDN,查找 MessageBox(),查看 DialogBox() 并从那里开始。

          顺便说一句,我个人并不关心 MFC。如果你想使用类似 MFC 的方法,我推荐 Borland 的 C++ Builder。很旧,但我认为仍然非常有用。

          【讨论】:

            【解决方案6】:

            我过去使用过Trolltech's Qt framework,并取得了巨大的成功: 此外,它也是跨平台的,因此理论上您可以针对 Win、Mac 和 Linux(当然,前提是您没有在其余代码中执行任何特定于平台的操作;))

            编辑:我注意到您的目标是 Windows Mobile;这无疑增加了 Qt 的实力,因为它的跨平台支持也扩展到了 WinCE and Embedded Linux

            【讨论】:

            • 几个月前我自己研究了 QT,如果你想将它用于商业应用程序,它的成本相当高。有点遗憾,因为从跨平台的角度来看它看起来很棒。
            • 是的,这几年恐怕管理得不好。确实很丢脸。
            【解决方案7】:

            对于更漂亮的按钮等,如果您还没有这样做,embed an application manifest 以便您的程序链接到通用控件库的版本 6。这样做会让您获得 Windows XP 或 Vista 风格的标准 Windows 控件版本。

            如果您需要 Windows 本身提供的控件类型之外的控件,您可能必须自己编写或更具体地说明您要查找的控件类型。

            【讨论】:

            • 我只是为了美化一个 Visual C++ 6 应用程序。与同一目录中的清单一起工作正常。要通过 resource.rc 文件编译它,我必须添加: 1 24 "YourApplication.exe.manifest" 因为 CREATEPROCESS_MANIFEST_RESOURCE_ID == 1 和 RT_MANIFEST == 24
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2023-03-18
            • 2011-08-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多