亲爱的经验丰富的用户,
我已经在windows中编程了一段时间,我一直有这个问题 What is the right thing to do when creating a user interface?
是资源脚本中的UI并调用DialogBox.
或者是第一次创建WNDCLASS结构的更繁琐的方式声明字段,RegisterClass(&wc)并使用CreateWindow,最后它的相同功能只是初始化更容易使用DialogBox并且您放弃了对类的abit控制.
我想你会问这个应用程序的目的是什么,当然我可以说它是一个皮肤应用程序(然后我会使用CreateWindow),如果它是一个简单的计算器应用程序,我会去Dialogbox.
但是专业人士会去做什么?
请保留在win32区域,因为我不会讨论是否将QT或Java用于那些类型的应用程序,我在框架上的立场是他们添加了大量不必要的开销,java JRE和QT额外的DLL和.NET所有这些都为用户添加了安装这些文件的要求,如果不是,则需要下载所有这些文件.这些文件的面积> 20 mb.我没有看到理由.
感谢您的回答以及您阅读我的翻译所花费的时间
您可以将 DialogBox 视为由多个逻辑部分组成的复合体:
打个比方,当程序流程必须根据用户的决定进行分支时,这种组合非常有用,将该决定封装到对 DialogBox() 函数的单个调用中。该函数确实做了很多工作,并通过隐藏与原始 Win32 窗口交互的异步性质来简化对程序的理解。
然而,如果 Win32 已经具有消息循环并且对 DialogBox 的调用是作为对特定消息的响应进行的,那么这种“高级性”,特别是其中包含的消息循环,实际上可能会增加程序的复杂性。因此,在这种情况下,您必须注意嵌套消息循环,特别是如果您在主消息循环中进行自定义消息处理。
为了避免此类问题,可以使用 CreateDialog 函数,该函数也很复杂,但仅包含第 1 部分和第 2 部分 - 它不会启动消息循环。所以,你必须提供自己的消息处理程序。如果需要的话,您还应该注意形式。
在我的实践中,我仅在非常小的实用程序应用程序中使用过几次 DialogBox。
| 归档时间: |
|
| 查看次数: |
1799 次 |
| 最近记录: |