Advice for C++ GUI programming

前端 未结 12 1363
Happy的楠姐
Happy的楠姐 2020-12-24 15:09

I have been writing C++ Console/CMD-line applications for about a year now and would like to get into windows GUI apps. For those of you who have taken this road before, wh

相关标签:
12条回答
  • 2020-12-24 15:20

    The first question is that do you want to develop Free, Open Source, for personal use or Commercial applications in C++?

    1. If you want to develop for personal use! Then you can go with some good C++ Toolkit, Framework or API.
    2. If you want to develop an GUI application that will be open source or free. Then you can go with C++ Toolkits, Frameworks or API's that have the GPL or any open source license that fits your needs.
    3. Even you can develop Commercial applications with open source toolkits, frameworks or API's that have LGPL license.

    The second question is that do you want to develop for the Windows, Mac, Unix or Linux? or these all, even for the mobile platform?

    1. If you have a Windows user, as I am, and want to develop only for the Windows, I mean not for the cross platform, you can go with Win32 API, although, learning Win32 API is harder but it gives you the complete control over the machine. Believe me that no other tool would you provide the complete control over the machine. If you dislike Win32 API, for any reason, you can go with MFC, which is another technology from Microsoft, but is not free, old and has less attention now a days. If you decide to develop with .NET platform, you have C++/CLI, an extension to C++ language for developing .NET applications. .NET gives you the type safety, OOP and a built in garbage collector, provides you the all API's related to Windows and x86 or x64 machine in one package. .NET has its own world! Microsoft has decided to port .NET to other operating systems too, Mono project is an example... You can develop nearly all kinds of applications using .NET.

    2. If you want to develop C++ GUI applications for the cross platform, then Qt, WxWidgets and U++ are available for your help. You can write once and deploy anywhere with these libraries. Many open source IDE's and compliers are also available to develop C++ applications with ease. Note that if you do not want to develop for the cross platform, any cross platform library would be overhead and unavoidable increase in size of the executables.

    Is your C++ knowledge is good enough to program software systems?

    In fact, if your knowledge of C++ is not enough deep and you do not understand programming methods like OOP, Encupsolation, Classes, Interfaces, Types, Programming Patterns and so on, you can not use any toolkit with full potencial. Do not forget that every Toolkit, Framework or API is implemented in some programming language. If you do understand the language very well, you can use the toolkit very well. I think, you would understand my point.

    0 讨论(0)
  • 2020-12-24 15:23

    Well, for the Windows GUI, get used to referencing the MSDN a lot, assuming you want to deal with the API directly.

    My favorite resource for learning the basics was theForger's tutorial, but there are hundreds of books and other sites out there.

    0 讨论(0)
  • 2020-12-24 15:23

    We are in 2020 but the question is still pertinent. I agree with Qt users, it's a great framework.

    However, there is also C++Builder that offers you design GUI visually at design-time. C++Builder application can be built on both VCL (Windows only) and FireMonkey (cross-platorm) frameworks. Clang compiler can produce both 32 and 64-bits native executables. Community edition of C++Builder is free. Delphi integration is seamless: C++Builder project can include Delphi files directly and use any existing Delphi component packages and libraries.

    0 讨论(0)
  • 2020-12-24 15:24

    My best advice for Windows C++ GUI programming is don't do Windows C++ GUI programming.

    I realize that is an extremely uninformative/smartass response if it's not qualified, so I'll note that you don't state that you need to do C++ Windows GUI programming, but that you "Would like to get into Windows GUI apps." If that is the case, and you don't have a very specific reason to use C++ (i.e. gigantic existing legacy codebase written in MFC or a bunch of C++ code that you want to build a front-end for but would be a pain to expose to .NET code), then it is going to be a lot easier and more productive to go the .NET route and start learning Windows Forms or better yet WPF using C# or another .NET language of your choice.

    If you do need to go C++, then I would second the recommendations for 3rd party toolkits like Qt or wxWidgets, as the state of C/C++ GUI programming tools from Microsoft is now abysmal.

    0 讨论(0)
  • 2020-12-24 15:26

    Put aside WPF or VC++ or Qt, You can also try out several libraries such as :

  • OpenFrameworks
  • Processing
  • ...
  • there's an active project for developing Gui with Openframeworks here:
    http://www.syedrezaali.com/blog/?p=2172

0 讨论(0)
  • 2020-12-24 15:33

    For C++ you have two choices, Native or Managed.

    For native development, my team (at Microsoft, in Windows) uses the Windows Template Library. It works very well for us.

    You should learn the basics of Win32 and how Windowing works. The canonical tome is Programming Windows®

    For Managed development you can use C++ with Windows Forms. However, windows forms has been supplanted by Windows Presentation Foundation (WPF).

    • Here is a good site that can get you up to speed.
    • This tutorial is useful
    • You can use Visual C++ 2008 Express Edition for your tools (they are free).
    0 讨论(0)
  • 提交回复
    热议问题