Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 我应该在项目开始时考虑GUI吗?_C_Windows_User Interface - Fatal编程技术网

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),那么你可以把它作为一个辅助项目来实现


但就你的主要项目而言,我会这么做:

  • 仔细规划和设计

    • 它会做什么
    • 你打算怎么做
    • 用户界面应包含哪些内容才能完全满足您的需要
  • 编码
  • 测试和调试
  • 重复2和3次,直到完全满意为止

  • 提示:

    • A.我不建议您将GUI添加到现有的控制台应用程序中,因为这很可能会导致代码混乱和/或UI混乱。 ;-)

    • B.在尝试实施任何事情之前,始终研究。你简直无法想象你对能做什么有多了解 影响你能做什么(最可能的结果是什么)

    为什么要像编写基于控制台的项目一样编写项目,因为它最终会有一个GUI

    如果有什么事情你想先尝试一下(比如你不知道如何做a、b或c),那么你可以把它作为一个辅助项目来实现


    但就你的主要项目而言,我会这么做:

  • 仔细规划和设计

    • 它会做什么
    • 你打算怎么做
    • 用户界面应包含哪些内容才能完全满足您的需要
  • 编码
  • 测试和调试
  • 重复2和3次,直到完全满意为止

  • 提示:

    • 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