哪里是开始为Windows编程GUI的好地方?

Ed.*_*Ed. 25 winapi qt mfc

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

OJ.*_*OJ. 43

这是一个相当广泛的问题,因为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并不是一个合适的建议.我也不同意富客户端应用程序(例如办公室)的日期已经编号.

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

  • 如果你想使用C++的Win32 API,还有WTL.见http://wtl.sourceforge.net/ (2认同)

lom*_*axx 5

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