MFC 2008,新的用户界面 - 2 - 应用程序类

看看应用程序类,这个类是MFC程序中必不可少的一个类。MFC用CWinAppEx替代了CWinApp。CWinAppEx从CWinApp派生。向导生成的代码中,主要是InitInstance这个函数有了变化。

	LoadStdProfileSettings(4);  // 加载标准 INI 文件选项(包括 MRU)
	InitContextMenuManager();
	InitKeyboardManager();
	InitTooltipManager();
	CMFCToolTipInfo ttParams;
	ttParams.m_bVislManagerTheme = TRUE;
	theApp.GetTooltipManager()->SetTooltipParams(AFX_TOOLTIP_TYPE_ALL,
		RUNTIME_CLASS(CMFCToolTipCtrl), &ttParams);

MFC新增加鼠标管理器(CMouseManager)、键盘管理器(CKeyboardManager,管理加速键)、上下文菜单管理器(CContextMenuManager)、工具提示管理器(CTooltipManager)、外壳管理器(CShellManager)和用户工具管理器(CUserToolsManager),真是令人眼花撩乱。这些管理器可以通过CWinAppEx的函数访问。应用程序类在这里创建了上下文菜单管理器、键盘管理器和工具提示管理器。

 

CWinAppEx中有一对新的方法:LoadState()和SaveState()。LoadState在创建主框架时(CFrameImpl::OnLoadFrame)被调用,SaveState在销毁主框架之时(CFrameImpl::OnCloseFrame)调用。PreLoadState、PreSaveState、LoadCustomState和SaveCustomState是留给派生类使用的,它们在CWinAppEx中实现为空;它们在LoadState和SaveState中被分别调用。其实很多类都有LoadState和SaveState这一对方法,它们用这一对函数读取配置和保存配置。CWinAppEx在LoadState中读取各个管理器的状态,在SaveSate中保存各个管理器的状态。

LoadState、SaveSate和ClearState都是虚函数,意味着它们可以被派生类改写。

应用程序的状态通常被保存在注册表中,它的具体位置是:HKEY_CURRENT_USER/"Software"/RegistryKey/ProfileName,你可以用函数GetAppRegistryKey获取这个值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值