您好亲爱的经验丰富的用户,
我已经在Windows中编程了一段时间,并且我一直遇到这个问题What is the right thing to do when creating a user interface?
是否在资源脚本中对UI进行处理并调用DialogBox。
还是首先创建WNDCLASS结构,声明字段RegisterClass(&wc)并使用CreateWindow的更乏味的方法,最后使用相同的功能,只是使用DialogBox进行初始化更容易,并且您可以松开对该类的位控制。
我猜你会问这个应用程序的目的是什么,当然我可以说它是一个皮肤应用程序(然后我将使用CreateWindow),如果它是一个简单的计算器应用程序,我会选择Dialogbox。
但是专业人士会做什么呢?
并且请保持在win32区域,因为我不会就是否将QT或Java用于此类应用程序进行辩论,我对框架的立场是它们会增加很多不必要的开销,而Java JRE和QT则是额外的DLL和.NET,所有这些都向用户增加了安装这些文件的要求,如果没有,则要求下载所有这些文件。这些文件的大小> 20 mb。我看不出有什么道理。
感谢您的回答以及您阅读我的文章所花费的时间
最佳答案
以我的经验,使用DialogBox作为主窗口应用程序一开始似乎很容易,但随后会感到非常不舒服,特别是如果您使用DialogBox()
(而不是CreateDialog()
)进行对话框的话
一种。返回值不是消息记录的真实
LRESULT
,而是在几乎所有仅对话框消息中几乎没有用的BOOL
。b。一些重要的消息不会发送到对话过程,特别是WM_CREATE。
FindWindow
成为PITA。 当然,有针对所有这些缺点的解决方法,但这不是重点。
以及明显的优势:
我并不是说制作基于对话框的应用程序是没有意义的。只是如果有更好的方法,您应该三思而后行,尤其是对于非平凡的方法。