- 1、本文档共52页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章MFC应用程序框架剖析
第3章 MFC 应用程序框架剖析;;3.1最简单的应用程序;#include afxwin.h
class CHelloFrame : public CFrameWnd
{
public:
CHelloFrame()
{ Create(NULL, Hello World!, WS_OVERLAPPEDWINDOW, rectDefault); }
};
class CHelloApp : public CWinApp
{
public:
virtual BOOL InitInstance()
{
m_pMainWnd = new CHelloFrame();
m_pMainWnd-ShowWindow(m_nCmdShow);
m_pMainWnd-UpdateWindow();
return TRUE;
}
};
CHelloApp HelloApp; //定义一个全局CHelloApp对象;3.2 带文档—视图结构的MFC程序基本框架类和文件组成;;;;文档类 ;视图类 ;框架类; ;;应用类 ;应用程序主要源文件组成; ;;;;注意; WINDOWS应用程序一定要有WinMain函数,该函数用来完成一些特殊的任务,象创建程序的主窗口,主窗口用来处理消息的代码。MFC将WinMain隐藏在框架中,不象写SDK (Software Development Kit)程序时可以很容易的找到它。 WINDOWS采用的消息处理机制也交给了程序框架,我们不必担心如何使这些消息和代码联系起来。并且WINDOWS定义好了一些消息,当窗口被创建时系统就会发送WM_CREATE消息,当点击鼠标左键时便系统会发送WM_LBUTTONDOWN消息,当用户按下键盘时系统会发送WM_CHAR消息,当用户关闭窗口时系统会发送WM_CLOSE消息,当用户进行菜单项选择或单击按钮时系统回发送WM_COMMAND消息,什么都不做系统还会发送WM_TIMER消息。;3.3 MFC应用程序的执行步骤 ;(1)调用CWinApp类构造函数;(2)WinMain接受控制;(3)调用函数InitInstance进行初始化;(4)WinMain处理消息;(5)WinMain退出,程序终止;3.4 使用ClassWizard;1. Windows消息;窗口消息;控件的通知消息;命令消息;;2. 消息处理函数;3. ClassWizard的启动;MFC ClassWizard对话框的组成;4.ClassWizard管理消息处理函数;;几点说明;;;;几点说明;;5.ClassWizard管理重载虚函数;重载虚函数;;FilePath=lpszPathName; //得到当前文档的名称
int n=FilePath.Find(.); //得到文件名中.的位置
if(n0) //如果当前的文档名称有后缀,去掉后缀
FileName=FilePath.Left(n);
else //如果文档名称中没有后缀
FileName=FilePath;
FileName+=.tmp; //增加一个.tmp后缀
//以二进制方式打开一个可读写的文件,文件不存在就新建一个
Fundo.Open(FileName,CFile::modeCreate|CFile::modeReadWrite|CFile::typeBinary);
并在文档类CDrawDoc中定义如下变量:
CFile Fundo;
CString FilePath,FileName;;几点说明:
(1)ClassWizard对文档类CDrawDoc所作的修改
定义部分
//{{AFX_VIRTUAL(CDrawDoc)
public:
virtual BOOL OnNewDocument();
virtual void Serialize(CArchive ar);
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
//}}AFX_VIRTUAL
实现部分
BOOL CDrawDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
if (!CDocument::OnOpenDocument(lpszPathName))
return FALSE;
//TODO:Add your specialized creation code here
return TRUE;
};;必须在真正掌握程序的框架构造基础上使用工具
初学者应先花费大量的精力弄懂MFC程序框架的组成结构,而后才能游刃有余的控制程序。最不可取的是不懂框架结构和工具本质作用而
文档评论(0)