Windows GUI C++编程

9

我想学习使用Visual Studio 2008进行C++ GUI编程。但是,我不确定从哪里开始。我在高中学过C ++,但没有学过GUI。我已经使用C#约3年了,这就是我“学习”GUI编程的方式。现在我想学习如何编写没有使用.NET框架的GUI界面,请问我该从哪里开始?

7个回答

8

1
《圣经》!阅读Petzold的书不仅是为了直接开发使用Win32 API(虽然它有其优缺点-我更喜欢使用它而不是MFC),而且还要理解Windows在引擎盖下的工作原理。 - Joe Pineda

8

既然你说你已经做了大约3年的C# GUI编程,我会认为这意味着Windows Forms。一种尝试的方法是记住WinForms实际上只是user32的面向对象包装器。因此,加载反编译器并查看某些控件的实现方式。您将看到Windows将这些奇怪的消息(如WM_PAINTWM_KEYDOWN)泵送到各种控件的WndProc。在普通的Win32或MFC编程中,仍然正在进行相同的操作。这样做将让您逐步剥离洋葱的层; 您也将更好地了解Windows Forms的工作原理。从那里开始,我建议阅读Petzold的《Programming Windows》;它可能有点老,但Windows的本机API并没有太多变化。祝玩得开心!


7

MFC现在已经几乎过时了。我建议使用WTL代替。

当有很多好的框架可用,如QT跨平台框架时,仅仅开始使用C++编程GUI并不是一个好主意。


5

一些异端的观点...

我不建议使用C++编写复杂的Windows GUI - 像C#或Delphi这样的语言/库组合更加高效。如果你想学习C++编程,我建议使用它来编写一个多线程服务器 - 一个简单的Web服务器就足够了。

如果你真的想要理解底层的Windows API,我认为有必要用C(而不是C++)编写一个简单的应用程序(比如一个简化版的笔记本)。你只需要这么做一次,但在这个过程中你会学到很多东西。

在任何人开始疯狂地点踩之前,让我说一下,我是一位拥有20多年经验的C++程序员,我真的很喜欢这门语言。


1
不,我完全同意。这是值得的,因为它让人有了“哦——原来是这样啊”的感觉,让人明白了为什么会有无数个包装器,也让人知道了为什么我们不再那样做了。 =) - Nicholas Piasecki

2
你是否愿意使用Microsoft Foundation Classes或MFC来编写VC++图形用户界面(GUI)呢?这是我过去编写VC++ GUI的方式。
多年来,已经有很多关于MFC的书籍出版。我相信其中任何一本都会很好地满足你的需求。在文献中,你可能会发现ATL这个参考,它是STL的微软迭代版本。随着时间的推移,MFC和ATL有些合并了,因此现在与ATL相关的内容也适用于MFC应用程序。
祝你好运并玩得开心!

在我看来,这绝对是正确的方式。 - Glenn

2
啊,我知道你的感受,作为一名想要了解编译程序背后魔法的老旧解释性语言程序员。嗯,我找不到我用来学习Windows编程的教程,但是你要知道有很好的win32教程可用,所以你不必立即浪费时间购买一本书。
我找到了:http://www.relisoft.com/win32/index.htm 这是最好的教程,相信我。

0

目前(Windows 8),微软推出了全新的API——WinRT,我对此感到非常兴奋。虽然我从未进行过MFC编程,但看过一些代码示例,它们看起来像90年代的C风格(现代C风格通常更好!)。因此,在不直接开始MFC的情况下,我想我会从WinRT开始。

:)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接