深入浅出MFC—Frame1[通俗易懂]

深入浅出MFC—Frame1[通俗易懂]#includeclassCObject{public: CObject() { printf(“CObjectConstructor\n”); } ~CObject() { printf(“CObjectDestructor\n”); }};classCCmdTarget:publicCObject{publ

大家好,又见面了,我是你们的朋友全栈君。

#include <stdio.h>

class CObject
{
public:
	CObject()
	{
		printf("CObject Constructor \n");
	}
	~CObject()
	{
		printf("CObject Destructor \n");
	}
};

class CCmdTarget:public CObject
{
public:
	CCmdTarget()
	{
		printf("CCmdTarget Constructor \n");
	}
	~CCmdTarget()
	{
		printf("CCmdTarget Destructor \n");
	}
};

class CWinThread:public CCmdTarget
{
public:
	CWinThread()
	{
		printf("CWinThread Constructor\n");
	}
	~CWinThread()
	{
		printf("CWinThread Destructor \n");
	}
};

class CWinApp:public CWinThread
{
public:
	CWinApp *m_pCurrentWinApp;
public:
	CWinApp()
	{
		m_pCurrentWinApp = this;
		printf("CWinApp Constructor \n");
	}
	~CWinApp()
	{
		printf("CWinApp Destructor \n");
	}
};

class CDocument :public CCmdTarget
{
public:
	CDocument()
	{
		printf("CDocument Constructor \n");
	}
	~CDocument()
	{
		printf("CDocument Destructor \n");
	}
};

class CWnd:public CCmdTarget
{
public:
	CWnd()
	{
		printf("CWnd Constructor \n");
	}
	~CWnd()
	{
		printf("CWnd Destructor \n");
	}
};

class CFrameWnd:public CWnd
{
public:
	CFrameWnd()
	{
		printf("CFrameWnd Constructor \n");
	}
	~CFrameWnd()
	{
		printf("CFrameWnd Destructor \n");
	}
};

class CView:public CWnd
{
public:
	CView()
	{
		printf("CView Constructor \n");
	}
	~CView()
	{
		printf("CView Destructor \n");
	}
};

//
class CMyWinApp:public CWinApp
{
public:
	CMyWinApp()
	{
		printf("CMyWinApp Constructor \n");
	}
	~CMyWinApp()
	{
		printf("CMyWinApp Destructor \n");
	}
};

CMyWinApp theApp;

//
CWinApp *AfxGetApp()
{
	return theApp.m_pCurrentWinApp;
}

class CMyFrameWnd:public CFrameWnd
{
public:
	CMyFrameWnd()
	{
		printf("CMyFrameWnd Constructor \n");
	}
	~CMyFrameWnd()
	{
		printf("CMyFrameWnd Destructor \n");
	}
};


void main()
{
	CWinApp *pApp = AfxGetApp();
}

//CObject    Constructor
//CCmdTarget Constructor
//CWinThread Constructor
//CWinApp    Constructor
//CMyWinApp  Constructor

//CMyWinApp  Destructor
//CWinApp    Destructor
//CWinThread Destructor
//CCmdTarget Destructor
//CObject    Destructor

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148847.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • org.apache.kafka.clients_kafka源码分析

    org.apache.kafka.clients_kafka源码分析apacheKafka中国社区中国社区QQ群1:162272557未满收费5¥,保证QQ运营,腾讯QQVIP收年费,2000人群非常活跃,质量很高中国社区QQ群2:414762562未满1000人群中国社区QQ群3:191278841未满1000人群中国社区QQ群4:415846802未满1000人群每当有新blog发布时,会在此处更新,欢迎大家拍砖共同成长目录索引…

    2022年10月14日
    3
  • android读取sqlite数据库的数据并用listview显示

    android读取sqlite数据库的数据并用listview显示android读取sqlite数据库的数据并用listview显示刚刚接触android,老师给了我了几个班级信息的excel,让我做一个考勤的系统出来,本篇仅记录了真机调试下,读取已有静态数据库信息并显示在listview中。准备工作开发工具为AndroidStudio。sqlite可视化软件SQLiteExpertProfessional5已将excel表转化为的数据库student1………

    2022年7月27日
    8
  • mp4 文件中的h264 avc1格式介绍

    mp4 文件中的h264 avc1格式介绍转自:http://www.mworkbox.com/wp/work/314.htmlMP4的视频H264封装有2种格式:h264和avc1,对于这个细节,很容易被忽略。笔者也是在改编LIVE555流媒体时,增加mp4文件类型支持时遇到了该问题。(一)首先,从原理上了解一下这2种格式的区别:AVC1描述:H.264bitstreamwithoutstartcode

    2022年10月17日
    2
  • 编译链接过程中出现“无法解析的外部符号”,原因及解决办法总结

    编译链接过程中出现“无法解析的外部符号”,原因及解决办法总结1、错误为:errorLNK2019:无法解析的外部符号___report_rangecheckfailure,该符号在函数_OBJ_create_objects中被引用 原因:__report_rangecheckfailure  是用来检查堆栈缓存溢出的,如果编译的时候打开GS(projectproperty–》Configurationproperties–》c/c++…

    2022年4月19日
    60
  • War3Share开源

    War3Share开源由于个人精力和网络带宽等问题,我无法继续进行魔兽争霸3录像工具软件War3Share的开发与维护。为了让它得到更好的发展,现已转交给超级玩家进行管理。经过协商,我们决定将它以LGPL协议进行开源。Wa

    2022年7月4日
    34
  • 域名的url转发功能是什么_url和域名有什么区别

    域名的url转发功能是什么_url和域名有什么区别在网上找了很久,感觉还是米发快捷点,适用于域名注册下来但是个人网站还没完成暂时转发至博客的,或者想给博客弄个个性点的域名的工具:域名,米发帐号  原理:域名商解析到第三方平台服务器,第三方平台帮你转发到你的地址1. 在米发平台上添加域名2. 在米发平台上添加转发操作,   显性URL转发:只是跳转,网站显示的还是你跳转后的地址,不是你的域名隐性URL转发:网站显示的是你的域名,内容是你要跳转的…

    2022年10月19日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号