持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第24天,点击查看活动详情
注意点:
后缀名为Ex的函数都是扩展函数(自己写的时候也可以通过这个方法来区别)。 在MFC中,以Afx为前缀的函数都是全局函数,可以在程序的任何地方调用它们。
1.InitInstance函数
InitInstance他是对CWinThread类所进行重写的虚函数,在类的创建时需要继承 CWinApp类,子类的实现代码保证具有完整性。CWinApp类它具有一定的特殊性,在这个类中除了又一遍类都具有的构造函数意外,他还有一个特别重要的成员函数InitInstance,然而函数InitInstance的作用主要在于生成一个新的 实例的时候完成一些初始化工作(比如显示窗口,更新窗口,保存指针等等)。
virtual BOOL InitInstance();//子类的重写
2.OnCreate函数
此函数是一个消息响应函数,在发送创建消息的时候会自动调用这个函数,此消息的发送是通过 Create(NULL, TEXT("MFC"));//创建窗口
这个函数发送的,然而他俩的区别在于Create函数是用于发送消息的函数,OnCreate函数是用于响应消息的函数。
(Create函数可以直接呼出来窗口,而OnCreate函数不可以,他只是做一些响应)
3.OnPaint函数和OnDraw函数
OnPaint()是CWnd的类成员函数,负责响应绘画消息。OnDraw函数是在OnPaint函数中所调用的,OnDraw()是CVIEW的成员。CDialog也派生自CWnd。也就是说CVIEW和Dialog都继承了OnPaint函数(当然在各自的使用过程中进行了重写)。我们在单文档应用程序里VIEW类只看到了OnDraw函数,而在对话框应用程序里只看到了OnPaint函数,就以为OnDraw是单文档才有,OnPaint 是对话框才有的。这是不正确的,单文档里也有OnPaint 函数,不过是继承的CWnd的。而我们自己写的绘画的代码应该放在OnDraw()函数中。