一般来说,程序没必要使用WinAPI编写,太麻烦了。
如果可以接受.NET框架的话(一般是应用软件和一般的工具软件)——
如果可以接受.NET框架,要完全原生的体验,用Windows Forms。
如果可以接受.NET框架,内存足够大,想把界面做得华丽一些,用WPF。
如果不能接受.NET框架的话(一般是运行环境特殊的工具软件或跨平台软件)——
如果不能接受.NET框架,界面要求原生的体验,用wxWidgets。
如果不能接受.NET框架,想把界面做得华丽一些,用Qt。
如果不能接受.NET框架,也不能接受C++的话,用GTK+。
如果不能接受.NET或其它的框架,只需要非常简单的GUI界面的话,用Win32对话框。
如果不能接受.NET或其它的框架,而且不需要GUI界面的话,用控制台程序。