按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
(本图从Visual C++ 的「Class View 窗口」中获得)
就如我曾在第1章解释过的,InitApplication 和InitInstance 现在成了MFC 的CWinApp
的两个虚拟函数。前者负责「每一个程序只做一次」的动作,后者负责「每一个执行个
115
…………………………………………………………Page 178……………………………………………………………
第篇 勿在浮砂築高台
体都得做一次」的动作。通常,系统会(并且有能力)为你注册一些标准的窗口类别(当
然也就准备好了一些标准的窗口函数),你(应用程序设计者)应该在你的CMyWinApp
中改写InitInstance ,并在其中把窗口产生出来…这样你才有机会在标准的窗口类别中
指定自己的窗口标题和菜单。下面就是我们新的main 函数:
// MY。CPP
CMyWinApp theApp;
void main()
{
CWinApp* pApp = AfxGetApp();
pApp…》InitApplication();
pApp…》InitInstance ();
pApp…》Run();
}
其中pApp 指向theApp 全域对象。在这里我们开始看到了虚拟函数的妙用(还不熟练者
请快复习第2章):
pApp…》InitApplication() 调用的是CWinApp::InitApplication ,
pApp…》InitInstance() 调用的是CMyWinApp::InitInstance (因为CMyWinApp 改
写它了),
pApp…》Run() 调用的是CWinApp::Run ,
好,请注意以下CMyWinApp::InitInstance 的动作,以及它所引发的行为:
BOOL CMyWinApp::InitInstance()
{
cout