深入浅出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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • flag_activity_new_task 简单_activity启动流程图解

    flag_activity_new_task 简单_activity启动流程图解当在一个的activity以FLAG_ACTIVITY_NEW_TASK的方式启动另一个已经启动的activity时,需要设置intent.addCategory(Intent.CATEGORY_LAUNCHER);intent.setAction(Intent.ACTION_MAIN);否则将要打开的activity会重走一遍onCreate(),加上之后会直接调用之前的acti

    2022年9月28日
    2
  • Java中Random用法

    Java中Random用法今天看帖子时候看到了蓄水池算法,想起来之前看到过这样的题目,记录一下用到的Random类吧,面试写算法应该会碰到这样的题目。首先Random是随机生成数用法,介绍一下:1、Random.nextInt():这个用法就是生成一个Int范围里的一个随机数,用法举个例子:Randonmrandom=newRandom;System.out.println(random.nextInt());这时候输出的就是一个随机数,范围就是int的范围,当然括号里是可以填参数的,比如random.nextInt

    2022年7月7日
    21
  • 流水线设计的概念_流水线原理

    流水线设计的概念_流水线原理流水线设计的概念它是面积换取速度思想的又一种具体现。所谓流水线设计实际上是把规模较大、层次较多的组合逻辑电路分为几个级,在每一级插入寄存器并暂存中间数据。流水线处理是提高组合逻辑设计的处理速度和吞吐量的常用手段。如果某个组合逻辑设计的处理流程可以分为若干步骤,而且整个数据处理过程是“单流向”的,即没有反馈或者迭代运算,前一个步骤的输出是下一个步骤的输入,则可以考虑采用流水线设计方法提高数据处理频率,即吞吐量。……

    2022年8月14日
    6
  • 理解 Thread.Sleep 函数 ,Sleep(0) 释放当前线程所剩余的时间片,让线程马上回到就绪队列而非等待队列…

    理解 Thread.Sleep 函数 ,Sleep(0) 释放当前线程所剩余的时间片,让线程马上回到就绪队列而非等待队列…

    2021年9月11日
    74
  • python实现约瑟夫环问题

    python实现约瑟夫环问题#!/usr/bin/python#-*-coding:utf-8-*-definitList(n):list=[]foriinrange(n):list.append(i+1)returnlistdefrun_josephus(list,m):n=len(list)i=0j=0whilen>1:n=len(list)#.

    2022年6月4日
    35
  • 视频列表

    视频列表

    2021年10月20日
    48

发表回复

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

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