sample() 这里才创建窗体,并且有一个消息框出现,然后程序控制点回到App::InitInstance()的m_pMainWnd=obj;位置。 这一块是个难点,刚开始学的时候,我不明白m_pMainWnd,你从哪里来,来了干什么。他从类CWinThread里来,他的定义为 CWnd* m_pMainWnd; 他凭什么直接用?class CWinApp : public CWinThread 因为MFC中的CWinApp类继承于CWinThread子类中用父类的成员变量,儿子用老爸的钱,当然可以拉,所以他可以直接用。 他有什么用,我们看 sample *obj; 这两个是在InitInstance()这个成员函数声明的,也就是说,这个函数结束了,这个指针变量必然要析构,而这个指针是代表窗体框架的,这个指针释放了,那么,窗体也跟着消失了,所以,我们要把这个地址留下来,就给了m_pMainWnd这个指针了,他是在线程类中的,有线程他就在,程序结束了,没线程了,他也消失了,窗体框架也就结束了。 到现在我们还只是在内存中,创建了一个窗体,没有显示出来,那么 obj->ShowWindow(SW_SHOWMAXIMIZED); 通过这一句,用指针调用类的成员函数,在CFrameWnd中,还封装了ShowWindow这个API函数,用法和API函数一样。 在return TRUE;这句之后该函数结束。 程序进入了运行状态,在关闭程序的时候,会调用ExitInstance()这个函数,该函数仅仅输出一个消息框就结束了。那么这个简单的MFC程序就讲到这里了。 |
正在阅读:VC精华教程:MFC入门系列(一)VC精华教程:MFC入门系列(一)
2005-07-07 10:44
出处:PConline
责任编辑:moningfeng
键盘也能翻页,试试“← →”键