Visual C++/MFC 指南 第四课: MFC 简要指点
已经作好开始写程序的准备了么?不,还没有。不要说你要让我教你写个愚蠢的'hello world'程序。如果你想好好利用Visual C++你就得会Microsoft Foundation Classes(MFC)。这些类非常好,它包含了所有我们在第二课里讨论过的好处。现在对你最重要的是CWnd类。它封装了那些需要窗口句柄的函数。记得我曾提过的PostMessage函数么?
PostMessage(your_HWND, WM_PAINT, 0,0);
现在我们可以拥有窗口类并调用成员函数:
MyCWnd.PostMessage(WM_PAINT, 0, 0);
这个语句做了同样的事情,我们不必再去关心窗口句柄了。但你不要被骗了,它们还是在的,我们还在使用它们呢。它们现在仅是类的成员变量了。CWnd类里有窗口句柄m_hWnd。我们现在要这样调用老的发送消息函数:
::PostMessage(MyCWnd.m_hWnd, WM_PAINT, 0,0);
两个冒号 (::)用来告诉MFC我们调用的是老版本的函数。通常你不需要这样使用,但我在这里说一下免的你看到其他代码的时候感到困惑。
CWnd类是一些其他类的基类。像CButton和CDialog一样,带有解释性的名字。从CButton也能访问窗口句柄。(你会惊讶Windows里有多少东西啊。。滚动条,编辑框,树型视窗,桌面。。。。)。
另外一个重要的类是CWinApp类,虽然你以后并不会特意的使用它。这个类是MFC的主干,它在幕后做了很多的苦活。你的每个程序都有一个CWinApp的对象,当它建立的时候,程序也就开始运行了。CWinApp对象建立的时候调用的主要的函数是InitInstance(),是在这个函数里,你的程序被建立并开始运行。你可以认为InitInstance()跟C里的Main()函数很像。
让我们最后来看一个在MFC里挺重要的类,你肯定会用到的:CString类。这是微软的支撑类之一,用来简化对字符串的操作。CString类重载了大部分常用的操作符,比如 = 和 +,你就何以这样用了:
CString strMyString;
strMyString="May the Force be with you";
strMyString+=" young Jedi."
printf("%s", strMyString);
//output will be "May the Force be with you young Jedi.";
(原来的教程有7篇,前四篇还不错,感觉作者对初学VC的方法很有一点心得,后三篇讲的是对话框文档视图,还不如看现在到处有的教材好,就不继续了)babyman。