GUI programming without a full Win32 application

I'd like to use native Windows GUI components (windows, buttons, text boxes, menu bars, etc.) to create a GUI for an application, but I don't want the application to be purely a Win32 application. From what I've read, some people suggest MFC, but I was curious on what people here thought.

I'm actually writing bits and pieces as an API, so I'd like to avoid as many dependencies as possible. Ideally, I'd like to be able to compile a library I can move between different Windows machines, opening up Visual C++ Express, create a project and set up linking, and start coding. Is this possible with MFC? Is there something else Windows native that would be better suited for this task?

Also, this API may be used to develop commercial software, so I need to avoid licensing that restricts that.

Thanks.


If you're writing something for Windows, you'll pretty much need to go with Win32. MFC is a wrapper of Win32 which makes things a little easier to work with. I don't think it is available in Visual Express.

Another wrapper is Qt. This one is quite high-level but it's certainly worth checking out and running the tutorials from Nokia's site. There are many many many professional applications developed with Qt.
MFC does not came with Visual Studio Express, you must get a licensed copy of VS to use that.

QT is good, but it's DLLs are very huge (static linking is NOT available if you want to use free edition of QT).

There are a few tricks like using WTL (free of charge) and ATL from Windows DDK besides VS Express (VS Express does not came with ATL normally).
WxWidgets ?
@modoran You may link statically for Qt for non-commercial version, but you have to recompile the whole library yourself, which takes relatively long time. (it's Qt, not QT, btw).

Qt is the best choice for you. It uses native C++, and it's relatively easy to learn through its examples.

www.qt-project.org
Topic archived. No new replies allowed.