由于我不可能使用windowless方式、故总结它的缺点多于它的优点,请各位喜欢windowless的原谅。
关于windowless缺点的贴子,请参考
windowless的致命缺点
1. 在一度程序上预防为windowless程序写外挂。由于Edit等控件都不用标准控件,而是自己实现,那么黑客就不容易获得*号密码(不过这仅是增加了破解难度,但仍然有办法破解,例如使用远程线程注入等技术,来截获用户按键)。对于发布后的程序,不希望用户汉化、破解、编写插件等,可以考虑使用windowless方式。
2. 作为开发者,设计一套windowless界面开发包,将可以学习到很多知识,开发windowless界面库,比开发win32、mfc界面库要难。虽然不使用win32的HWND,但在开发过程中,要学习很多HWND的知识,在开发完成后,你甚至发现,你可能比开发MFC界面库的的技术人员还了解MFC。
3. 对于一些组合控件的开发,比较方便。例如:要开发一个List控件,但List的Item是按钮。那么这些按钮,必须是windowless的(List可以不是windowless),因为HWND的子窗口数量有限制的,如果每个按钮都有句柄,很容易超过这个限制。
4. 作为开发者,不使用微软标准控件,而是自己开发,意味着你可以按自己的想法去实现控件,可以修改控件的行为等。
总结,windowless的优点,更多的是针对开发者,对于使用者而言,个人认为,还是弊大于利的。