C 我应该在项目开始时考虑GUI吗?
我想在C 我应该在项目开始时考虑GUI吗?,c,windows,user-interface,C,Windows,User Interface,我想在C中启动一个processmanager项目,它应该有一个图形用户界面。这是我的第一个GUI项目,我对此一无所知。经过一些搜索,我发现我应该使用winapi32库 我的问题是: 我应该像编写基于控制台的项目一样编写项目,然后向其中添加GUI,还是应该在项目开始时考虑GUI 为什么在开发过程中更改程序?只需按照最终应有的方式进行设计。为什么要在开发过程中更改程序?只需按照最终应有的方式进行设计。您可以将程序设计为同时使用文本和图形用户界面的方式。提供核心功能的抽象界面,并从文本和图形界面使用
C
中启动一个processmanager项目,它应该有一个图形用户界面。这是我的第一个GUI项目,我对此一无所知。经过一些搜索,我发现我应该使用winapi32
库
我的问题是:
我应该像编写基于控制台的项目一样编写项目,然后向其中添加GUI,还是应该在项目开始时考虑GUI 为什么在开发过程中更改程序?只需按照最终应有的方式进行设计。为什么要在开发过程中更改程序?只需按照最终应有的方式进行设计。您可以将程序设计为同时使用文本和图形用户界面的方式。提供核心功能的抽象界面,并从文本和图形界面使用它
如果您希望从上到下而不是从下到上启动,您应该选择您喜欢的任何一种方式,从调用接口存根版本的文本或图形界面开始。您可以将程序设计为同时使用文本和图形用户界面。提供核心功能的抽象界面,并从文本和图形界面使用它 如果你想从上到下而不是从下到上开始,你应该选择任何你喜欢的方式,从一个文本或图形界面开始,这个界面调用你界面的存根版本。为什么要把你的项目写成一个基于控制台的项目,因为它最终会有一个GUI 如果有什么事情你想先尝试一下(比如你不知道如何做a、b或c),那么你可以把它作为一个辅助项目来实现
但就你的主要项目而言,我会这么做:
- 它会做什么
- 你打算怎么做
- 用户界面应包含哪些内容才能完全满足您的需要
提示:
- A.我不建议您将GUI添加到现有的控制台应用程序中,因为这很可能会导致代码混乱和/或UI混乱。 ;-)
- B.在尝试实施任何事情之前,始终研究。你简直无法想象你对能做什么有多了解 影响你能做什么(最可能的结果是什么)
但就你的主要项目而言,我会这么做:
- 它会做什么
- 你打算怎么做
- 用户界面应包含哪些内容才能完全满足您的需要
提示:
- A.我不建议您将GUI添加到现有的控制台应用程序中,因为这很可能会导致代码混乱和/或UI混乱。 ;-)
- B.在尝试实施任何事情之前,始终研究。你简直无法想象你对可以做什么的了解 影响你能做什么(最可能的结果是什么)
我想说的是,最好将应用程序编写为命令行应用程序,然后在GUI中编写包装器。通过这种方式,您可以获得最灵活的应用程序,同时将GUI和功能完全分离 但我不会说的!:-) 根据我的经验,很难将GUI与应用程序完全分离,因此您应该在构建时考虑GUI。您的代码必须打开窗口、报告进度、对GUI事件作出反应,因此您必须非常熟悉所使用的GUI系统 但是,您还必须尽可能地在GUI和功能之间保持分离。例如,缩短回调,并将功能性指向应用程序的非GUI部分。如果需要在长时间计算期间报告进度,请向计算算法传递回调,而不是在算法中混合GUI进度命令 您还必须记住,大多数(如果不是全部的话)GUI系统只能在主应用程序线程中执行GUI命令,并相应地构建程序
总之,是的,在一开始考虑GUI,这样会更容易,但也会在GUI和功能之间保持良好的分离,我想说的是,最好将应用程序编写为命令行应用程序,然后在GUI中编写包装器。通过这种方式,您可以获得最灵活的应用程序,同时将GUI和功能完全分离 但我不会说的!:-) 根据我的经验,很难将GUI与应用程序完全分离,因此您应该在构建时考虑GUI。您的代码必须打开窗口、报告进度、对GUI事件作出反应,因此您必须非常熟悉所使用的GUI系统 但是,您还必须尽可能地在GUI和功能之间保持分离。例如,缩短回调,并将功能性指向应用程序的非GUI部分。如果需要在长时间计算期间报告进度,请向计算算法传递回调,而不是在算法中混合GUI进度命令 你也必须忍受m