我想开始一个进程管理器项目C
它假设有一个图形用户界面。这是我的第一个GUI项目,我不知道它。经过一番搜索后,我发现我应该使用winapi32
库。我应该在项目开始时考虑GUI吗?
我的问题是:
我应该写我的项目如基于控制台的一个,然后我添加GUI来,或我应该考虑一下GUI在我的项目的开始?
我想开始一个进程管理器项目C
它假设有一个图形用户界面。这是我的第一个GUI项目,我不知道它。经过一番搜索后,我发现我应该使用winapi32
库。我应该在项目开始时考虑GUI吗?
我的问题是:
我应该写我的项目如基于控制台的一个,然后我添加GUI来,或我应该考虑一下GUI在我的项目的开始?
我想说,这是最好写的应用程序作为命令行应用程序,然后写在GUI的包装。通过这种方式,您可以在GUI和功能之间完全分离,获得最灵活的应用程序。
但我不会说出来! :-) 根据我的经验,从应用程序完全分离GUI是非常困难的,因此您应该考虑使用GUI来构建它。您的代码必须打开窗口,报告进度,对GUI事件做出反应,因此您必须非常熟悉所使用的GUI系统。
但是,您必须尽可能保持GUI和功能之间的分离。例如,缩短回调时间,并将功能指向应用程序的非GUI部分。如果您需要在长时间计算期间报告进度,请将回调传递给计算算法,而不是在算法中混合GUI进度命令。
您还必须记住,大多数(如果不是全部的话)GUI系统只能在主应用程序线程内执行GUI命令,并且可以顺利构建程序。
因此,在总结 - 是的,想想GUI刚开始时,它会更容易这样,但也保持了GUI和功能之间的良好分离,
为什么在开发过程中改变程序?只要设计它就像它应该在最后。
您可以设计您的程序,使您可以同时使用文本和图形用户界面。为核心功能提供一个抽象界面,并通过文本和图形界面使用它。
如果你想要自上而下而不是自下而上,你应该选择任何你喜欢的文本或图形界面来调用你的界面的存根版本。
为什么把你的项目编写成一个基于控制台的项目,因为它会以GUI结束?
如果有任何事情想先尝试一下(比如你不知道如何做a,b或c),那么你可以把它作为一个侧面项目来实现。
但就你的主要项目进展,这就是我想要做什么:
仔细规划设计
提示:
A.我不会建议你到你的GUI添加到现有的控制台应用程序,“怎么这很可能会导致杂乱的代码和/或凌乱的用户界面。 ;-)
B.始终试图实现任何事情之前研究。你简直无法想象你有多少知识可以做什么 影响你可以做什么(最有可能你最终会做的)。
如果你想使一个用户界面,您可以使用QTCreator
或Visual Studio形式的项目...
QT
是使跨平台和可爱的界面的好方法... Visual Studio
形式只能在Windows平台上是可用的。
当你使用任何这些技术,你必须把“COMPONENTES”中的“窗口”的工作,然后一个代码,他们...
它假设是一个C项目,我可以使用Visaual Studio表单而不使用C++吗? – 2012-04-14 19:46:25
C++包含了大部分的C语言功能...但是componentes与clases一起工作,因为visual studio与MFC一起工作...所以如果你想在Windows中尝试使用C,你必须处理WinApi ......有一个很好的教程... c winapi http://zetcode.com/tutorials/winapi/ – 2012-04-14 20:14:45
当然,您可以将功能和设计作为两个不同的方面来工作......首先,您必须对“WinAPi组件”的功能进行建模将使用...然后编程该程序的功能 – 2012-04-14 20:19:19
我不知道Windows图形用户界面的想法。我应该学习它,然后开始我的项目?或者我可以在创建后添加GUI? – 2012-04-14 18:23:12
@NimaAhmadi:我会说:先了解GUI。您的洞察力可能会影响您的设计。 – 2012-04-14 18:24:35