我有使用C和C ++编写控制台和网络客户端/服务器应用程序的经验,但我对使用win32 visual API,MFC,Qt,wxWidgets等几乎一无所知。哪里是一个好的起点,我应该采用什么方法专注于,以便将来做好准备并且健壮吗?

===============>>#1 票数:44 已采纳

这是一个相当广泛的问题,因为Windows中的编程GUI应用程序可以通过多种方式完成。

开发任何GUI应用程序有两个主要部分: 语言API /框架 考虑到您对学习构建Windows GUI应用程序感兴趣,该语言并不是您的重点。 因此,您应该选择一种您已经熟悉的语言,并使用可以由您选择的语言使用的框架或API。

如果你想使用C,你几乎不能自己处理Win32 API,在这种情况下,阅读PetzoldRichter将是很好的起点。 Win32 API可能非常令人生畏,但值得学习(imho)。 网上有很多关于Win32的教程,并且总是有MSDN ,有完整的Win32 API参考/指南。 确保不仅涵盖API,还包括其他领域,例如资源/对话框,因为它们是Win32应用程序的构建块。

如果你想使用C ++,你可以使用C和其他几个选项。 我建议直接使用Win32 API,然后继续使用MFC,Qt,wxWindows或GTK这样的已知框架,这样您就可以花更少的时间处理样板代码,而是专注于编写应用程序逻辑。 我刚刚列出的最后3个选项具有跨平台的额外好处,因此您不必过于担心特定于平台的问题。 鉴于你说你想要使用Windows,我会假设你热衷于专注于它而不是跨平台 - 所以请使用MFC,但是先花一些时间使用Win32 API来熟悉一些概念。

在处理MFC和Win32 API时,最好在编写代码之前尝试深入理解术语。 例如,您需要了解消息泵是什么以及它是如何工作的。 您需要了解诸如“ 所有者绘制的控件”和子类化之类的概念 当您理解这些内容(以及更多内容)时,您会发现使用MFC更容易,因为它在类接口中使用了类似的术语(例如,您需要知道“翻译消息”的含义,然后才能了解如何以及何时使用使用PreTranslateMessage )。

您也可以使用Managed C ++编写.NET GUI应用程序,但我在一些地方读过Managed C ++并不是真的想以这种方式使用。 相反,它应该用作本机/非托管代码和托管代码之间的网关。 如果您使用.NET,最好使用.NET语言(如VB.NET或C#)来构建GUI。

所以,如果你使用.NET,您目前拥有的选择的WinForms库或WPF 我个人觉得你浪费时间学习构建WinForms应用程序,因为WPF旨在取代它。 随着时间的推移,WPF将变得更加出色,Winforms很可能会死亡。 WPF具有更丰富的API集,并且不受Winforms所具有的许多限制的影响。 但是,如果你确实选择了这条路线,那么毫无疑问你必须学习XAML ,它是一种驱动WPF应用程序的标记语言。 这项技术已经成熟,有许多值得学习的好地方。 首先,有一些网站,如LearnWPFDrWPF ,它们都有一些非常好的文章。 其次,有很多关于这个主题优质 书籍

总而言之,一旦你选择了语言和技术,这条道路实际上非常容易。 只需拿起一两本书,阅读一些博客,进入一些代码示例......最重要的是......编写代码。 继续写作,不断犯错,并不断学习。

作为最后的说明......

换句话说,Silverlight。 如果您不想使用MS路线,可以看看Adobe的Flash / Flex。 Silverlight和Flash / Flex都构建了RIA。 我认为这是我们的目标。 像应用程序这样的Office日期已编号

我完全不同意。 Silverlight与WPF不同。 Silverlight是特定于Web的,并且只有WPF功能的子集。 鉴于该问题要求使用Windows GUI应用程序,Flash / Flex Rich Internet Apps并不是一个合适的建议。 我也不同意富客户端应用程序(例如办公室)的日期已经编号。

我希望有所帮助。 祝好运 :)

===============>>#2 票数:5

我不知道我是否称它为开始的好地方,但是如果你想要将来做好准备,请看一下完全为了为windows编程而构建的windows presentation foundation

===============>>#3 票数:3

有很多在线Win32教程:

http://www.zeusedit.com/forum/viewtopic.php?t=1218

有很多编译器可供选择:

http://www.zeusedit.com/forum/viewtopic.php?t=238

我还建议以WinHelp文件格式获取Borland Win32 SDK文档:

http://www.zeusedit.com/forum/viewtopic.php?t=7

它只涵盖了Win32的基础知识,但是在启动时,这可能会有所帮助,因为它不像MSDN那样令人生畏,也不那么臃肿。

===============>>#4 票数:3

我第一次为Windows编写简单的GUI应用程序的经验是使用C#和Visual Studio。 GUI构建界面是一种简单的拖放处理,可根据潜在的用户操作生成骨架方法。 我只用这个做了相当基本的编程,但我想这将是一个很好的开始学习基础知识并扩展到更高级功能的地方。

===============>>#5 票数:1

我永远不会去Silverlight,Flash / Flex或任何类似的路线。 它确实看起来不错,但主要问题是运行它的引擎代码是完全封闭的,由一家公司控制。 例如,两者的64位版本。 如果出现某个新平台,您将无法将现有代码迁移到该平台。

===============>>#6 票数:0

首先获得您的基础知识。 我发现的最佳教程是: http//winprog.org/tutorial/start.html

之后,尽管主页令人讨厌,但教程页面内容和美观都很好: http//www.tenouk.com/cplusmfcdotnet.html

然后当然有MSDN

===============>>#7 票数:0

对于商业应用程序,Windows Forms非常成熟。 它提供了一个温和的路径,从自动生成很多东西到允许细粒度控制和滚动自己。 有大量高质量的第三方控件和大量的示例,文档等。 很难遇到其他人没有解决的问题。 我强烈建议获取一些背景Win32知识(例如Petzold ),因为WinForms框架就在它之上。

我没有WPF经验,但是从我看过的示例应用程序看来,它看起来是一个很好的选择,其界面将受益于更多的图形隐喻。 所以,如果你正在做一个银行应用程序,可能不值得额外的设计开销。 但是,如果您正在做一个仓库管理应用程序,可以通过将漂亮的盒子放入漂亮的箱子中来改进它。

@StephenCox:对错误问题的错误回答。 OP询问桌面客户端应用程序,而且WPF!= Silverlight。

===============>>#8 票数:0

对于一个简单的起点来了解“事件驱动”的本质,基本上所有框架都是围绕FLTK创建的。

以下是一些快速启动视频链接

对于专业用途,我推荐Qt,价格昂贵,但在商业环境中经常值得。

===============>>#9 票数:0

由于您已经熟悉C和C ++,我建议您学习如何使用Charles Petzold的书编写一个简单的Windows GUI应用程序。 它将使您基本了解Windows的工作原理。 很高兴理解你看到的大部分内容都是一个窗口(例如一个按钮就是一个窗口),这些窗口会响应消息。 我不会'花很多时间在这上面,如果你打算选择WPF,你不一定需要先做这个。 我认为对此有一个基本的了解是很好的。

最近在.Net Rocks上发布了一个很好的播客,名为“Kate Gregory用C ++开发Vista版本!” 在那里,她建议现在开始的人不应该使用/学习MFC(即使它最近已更新)。

至于为未来做好准备,你需要学习WPF,但它还没有完成,所以根据你想要创建的客户端应用程序的种类,你可能需要学习WinForms。 大多数人还没有使用WPF,所以现在是开始学习的好时机。 我想你会发现使用C#学习它而不是用C ++做托管代码会更容易。

  ask by Ed. translate from so

未解决问题?本站智能推荐: