Replacement for MFC? - Looking for advice

Started by
3 comments, last by Billr17 17 years, 8 months ago
I personally only know about MFC as an API that will allow you to develope programs with GUI interfaces using native C++ (as opposed to .NET or C#). However I have heard it mentioned more than once about MFC being somewhat "unfavored", for lack of better word, by programmers anymore. Besides (.NET Window forms, and C#) if you wanted to create a windows program using native C++ with an interface such as (i.e. MFC edit and combo boxes and buttons and scroll bars..ect), is there any other API's available (without having to reinvent the wheel again and code everything that MFC currently does for you)? What is everyone else using to create C++ programs without using MFC to generate the GUI's? I have heard of wrappers to MFC, but no favorable words about them...What if you wanted to create a customized GUI (customized as in any commercial program that has their own look, colors..ect)? Thanks in advance,
Advertisement
I use wxWidgets for all gui development. It is sort of like MFC, except much more elegant in my opinion. It is really easy to get an interface up and running. Best of all, it's cross-platform.

I've never touched .NET or managed anything, so I can't compare it to that.
I just flat-out use Win32 (though I am rummaging through the .NET framework class library at the moment). I still use MFC on occassion, but the best replacement for MFC is MFC, especially if you are using their document-view architecture. There used to be OWL, which ruled over MFC for several years, but that's been dead for a decade now (maybe since Borland says it's going back to its roots they'll bring it back LOL!). However, if you aren't using docview, then Qt and wxWidgets are pretty valid options (or the .NET FCL if you don't mind using that).
First of all you can use .NET from C++ just fine ... although I can't imagine why you would want to ... I use C# for my front end code and C++ for my back end code (my last project had 2 C# libraries (scheduling and shared logic), 2 C++ libraries (audio and usb device control) and a C# application (app specific logic and glue).

Writing a C++ .NET wrapper class for native C++ functionality is usually easy.

Not using .NET I have seen most APIs decline except QT seems to be gaining functionality and holding on to its market, and wxWidgets seems to still be rising in functionality and popularity.

I personaly have used apps built with each of those 2 toolkits in the last 2 years and am quite impressed with the fact that the windows versions of the app do not feel particular handicapped by the cross-platform nature of the library. They just feel right.

All other toolkits I have seen used did not feel as correct or snappy as native apps.
You could always give QT try. However, if you do not pay for a license you are required to provide your project completely open source and free of charge. The QT library is cross platform and will allow GUI developement across *nix, Mac, and Windows with very little if no changes to your code. If you combine QT with OpenGL, you will have a fully cross platform game. The down fall of using QT, is that it is a bit pricey for the commerical edition. The KDE desktop was built using QT. I actually prefer QT over MFC. However, I prefer the .NET framework combined with C# over both.

- Bill

This topic is closed to new replies.

Advertisement