我想学习使用Visual Studio 2008的C++ GUI编程.我不知道从哪里开始.我在高中时学过C++,但不是GUI.我已经做了大约3年的C#,这就是我如何"学习"GUI编程.现在我想学习如何在不使用.NET框架的情况下编写GUI,那么我从哪里开始呢?
Charles Petzold的"Programming Windows 5th Edition"是用于Windows编程的圣经.
http://www.charlespetzold.com/pw5/
既然你说你已经做了大约3年的C#GUI编程,我认为这意味着Windows Forms.将脚趾浸入水中的一种方法是记住WinForms实际上只是一个面向对象的包装器user32
.因此,加载Reflector并查看一些控件的实现方式.你会看到这些奇怪的邮件喜欢WM_PAINT
和WM_KEYDOWN
被泵到WndProc
被Windows的各种控件.在普通的旧Win32或MFC编程中,同样的事情仍在继续.这样做可以让你慢慢剥离洋葱的层; 您也可以更好地了解Windows窗体的工作原理.从那里,我建议选择Petzold 编程Windows ; 它已经过时了,但Windows中的原生API不是许多.玩得开心!
MFC现在几乎已经过时了.我建议改用WTL.
当有很多像QT跨平台框架这样的好框架时,开始用C++编程GUI也不是一个好主意.
一些异端的观点......
我不建议用C++编写复杂的Windows GUI - 像C#或Delphi这样的语言/库组合更有效率.如果你想进入C++编程,我建议用它来编写某种类型的多线程服务器 - 一个简单的Web服务器可以为初学者做.
如果你真的想了解底层的Windows API,我认为在C(而不是C++)中编写一个简单的应用程序(比如说,简化版本的笔记本)有一些东西可以说.你只想做一次,但你会在这个过程中学到很多东西.
在任何人开始疯狂地投票之前,让我说我是一位拥有20多年历史的C++程序员,并且非常喜欢这种语言.