views:

480

answers:

3

I'm porting an audio processing application written in C++ from Windows to Windows Mobile (version 5+). Basically what I need to port is the GUI. The application is quite complicated and the GUI will need to be able to offer a lot of functionality. I would like to create a touch friendly user interface that also looks good. Which basically means that standard WinMo controls are out the window.

I've looked at libraries such as Fluid and they look like something I would like to use. However, as I said I'm developing i C++. Even though it would be possible to only write the GUI part i some .NET language I rather not. My experience with .NET on Windows Mobile is that it doesn't work very well...

Can anyone either suggest a C/C++ touch friendly GUI library for Windows Mobile or some kind of "best practices" document/how-to on how to use the standard Windows Mobile controls in order to make the touch friendly and also work and look well in later versions of Windows Mobile (in particular version 6.5)?

A: 

There are two aspects to your question:

  1. Libraries. For this I would take a look at Qt for CE/WinMo. The C++ alternative is MFC.
  2. GUI Design. About Face and Designing Interfaces (J. Tidwell) are a couple of good books. Also:
    • make sure that your UI is finger-friendly, I hate it when I have to use a stylus.
    • keep in mind that on touch screens you can't have tooltips (no mouse over) and you don't have a mouse pointer. WinMo uses click and long click, but the latter is not easily discoverable.
    • add joystick UI navigation
    • don't try to cram too many controls on the tiny screen, use tabs or drill-down menus
rpg
A: 

I don't know any good C++ libs but you could try SlideUI mobile controls (it is in .NET), but you wouldn’t need any specific knowledge to use it and it's available via design time and easy to use.

http://www.devslide.com/products/slideui

darren
A: 

I'd also recommend to use .NET for the UI part. There are several very good controls out there that can be used right out of the box. Try e.g. Touch Controls.

Pete