C++ – Choosing between WPF, wxWidgets, Win32 API and MFC

cmfcuser interfacewinapi

Imagine you are on Windows 7 and you have to write a GUI for a GRAPHIC application, (like a terrain editor, mesh viewer ..) which involves a great use of DirectX and OpenGL (so written in native C++).
If your goal is a multi-platform software then you should go for wxWidgets, but imagine you're doing a Windows' only app…what would your choice be? and why?

I'm supposing that the application would work on both XP and Vista/7 and obviously in the WPF case the UI will be managed, but it will call native functions by a C++/CLI proxy-like class
( will "bouncing" from managed-native and native-managed cause performance issues? ).

Best Answer

RAD Studio can also make the job

  • Enhanced in 2010! VCL (Visual Component Library) for rapidly building Microsoft Windows applications now includes seamless Windows 7 support, and graceful fallback compatibility with Windows Vista, XP, and 2000
  • Enhanced in 2010! Windows Vista and Windows 7 API headers to fully exploit the latest Windows capabilities
  • New in 2010! Support for Windows 7 Direct2D API

you can also make WPF with Delphi Prism and wxWidgets with twinforms