Можно ли обойтись без использования WinAPI?
Нужно. Если не хотите лабать под кажду платформу свой код.
Здесь нужно различать два случая:
- хочу написать кроссплатформенное приложение, пофиг на чем
В этом случае берут Qt, Gtk иже с ними и пишут. Там уже обеспечили кроссплатформенность
- хочу написать кроссплатформенное приложение без сторонних библиотек
В этом случае придется изучать механизмы отрисовки окон (и скорее всего опять-таки лабать под каждую платформу свой код)