c++user-interfaceembeddedwindows-ce

Is switch from MFC to QT or WTL (or other GUI toolkit) recommended for Windows CE development?


There are pretty many questions regarding C++ GUI toolkits for Windows, but they mostly apply to desktop OS versions.

I'm now starting a C++ project for Windows CE 5.0 VGA hand-held device, and thinking about what GUI library to choose. I have some experience using MFC in Windows CE projects, but there are some known weak points of MFC mentioned here at SO (e.g., pretty outdated technologies used, bad abstraction, overuse of C++ preprocessor, etc.). For desktop projects they recommend QT and WTL mostly. At the same time MFC has some characteristics to be still considerable for embedded development.

So, how do you think, is it reasonable to spent some resources learning new GUI toolkit to switch from MFC, and what toolkit would you recommend in this case? Or is MFC still the most considerable for Windows CE embedded development?

The most important characteristics of a toolkit are: moderate CPU and memory load, small runtime size, good object-oriented design, compliance with good modern C++ practices, steep learning curve, development speed, commercial look, handy debug and design tools.

(What is needed in the project: serial port communication, threads, plots and diagrams drawing, ActiveSync communication.)


Solution

  • We have Qt 4.5 on Windows CE 5.0 project at finishing stage, so I try to tell about advantages / disadvantages of Qt developing comparing to MFC.
    Qt Pluses:

    Qt minuses:

    I think, that main advantage of MFC comparing to Qt it its minimal memory and CPU footprint. If this is not issue - choose Qt.
    P.S. Com port communication and plot drawing not natively included in Qt, but LGPL Qt-based libraries exist, which give you such features (As example "Qwt" for plotting).