MFC 六大关键技术之仿真——初始化过程

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

//MFC.h

#define BOOL int
#define TRUE 1
#define FALSE 0

#include <iostream.h>

class CObject
{
public:
  CObject::CObject()  {
                      }
  CObject::~CObject() {
                      }
};

class CCmdTarget : public CObject
{
public:
  CCmdTarget::CCmdTarget()  {
                            }
  CCmdTarget::~CCmdTarget() {
                            }
};

class CWinThread : public CCmdTarget
{
public:
  CWinThread::CWinThread()  {
                            }
  CWinThread::~CWinThread() {
                            }

  virtual BOOL InitInstance() {
                                cout << "CWinThread::InitInstance /n";
                                return TRUE;
                              }
  virtual int Run() {
                      cout << "CWinThread::Run /n";
                      return 1;
                    }
};

class CWnd;

class CWinApp : public CWinThread
{
public:
  CWinApp* m_pCurrentWinApp;
  CWnd* m_pMainWnd;

public:
  CWinApp::CWinApp()  {
                        m_pCurrentWinApp = this;
                      }
  CWinApp::~CWinApp() {
                      }

  virtual BOOL InitApplication() {
                                   cout << "CWinApp::InitApplication /n";
                                   return TRUE;
                                 }
  virtual BOOL InitInstance()    {
                                   cout << "CWinApp::InitInstance /n";
                                   return TRUE;
                                 }
  virtual int Run() {
                      cout << "CWinApp::Run /n";
                      return CWinThread::Run();
                    }
};


class CDocument : public CCmdTarget
{
public:
  CDocument::CDocument()   {
                           }
  CDocument::~CDocument()  {
                           }
};


class CWnd : public CCmdTarget
{
public:
  CWnd::CWnd()   {
                 }
  CWnd::~CWnd()  {
                 }

  virtual BOOL Create();
  BOOL CreateEx();
  virtual BOOL PreCreateWindow();
};

class CFrameWnd : public CWnd
{
public:
  CFrameWnd::CFrameWnd()   {
                           }
  CFrameWnd::~CFrameWnd()  {
                           }
  BOOL Create();
  virtual BOOL PreCreateWindow();
};

class CView : public CWnd
{
public:
  CView::CView()   {
                   }
  CView::~CView()  {
                   }
};


// global function

CWinApp* AfxGetApp();

//MFC.CPP

#include "my.h"  // it should be mfc.h, but for CMyWinApp definition, so...

extern CMyWinApp theApp;

BOOL CWnd::Create()
{
  cout << "CWnd::Create /n";
  return TRUE;
}

BOOL CWnd::CreateEx()
{
  cout << "CWnd::CreateEx /n";
  PreCreateWindow();
  return TRUE;
}

BOOL CWnd::PreCreateWindow()
{
  cout << "CWnd::PreCreateWindow /n";
  return TRUE;
}

BOOL CFrameWnd::Create()
{
  cout << "CFrameWnd::Create /n";
  CreateEx();
  return TRUE;
}

BOOL CFrameWnd::PreCreateWindow()
{
  cout << "CFrameWnd::PreCreateWindow /n";
  return TRUE;
}


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

//MY.H


#include <iostream.h>
#include "mfc.h"

class CMyWinApp : public CWinApp
{
public:
  CMyWinApp::CMyWinApp()   {
                           }
  CMyWinApp::~CMyWinApp()  {
                           }

  virtual BOOL InitInstance();
};

class CMyFrameWnd : public CFrameWnd
{
public:
  CMyFrameWnd();
  ~CMyFrameWnd()  {
                  }
};


//MY.CPP

#include "my.h"

CMyWinApp theApp;

BOOL CMyWinApp::InitInstance()
{
    cout << "CMyWinApp::InitInstance /n";
    m_pMainWnd = new CMyFrameWnd;
    return TRUE;
}

CMyFrameWnd::CMyFrameWnd()
{
    cout << "CMyFrameWnd::CMyFrameWnd /n";
    Create();
}

//------------------------------------------------------------------
// main
//------------------------------------------------------------------
void main()
{

CWinApp* pApp = AfxGetApp();

pApp->InitApplication();
pApp->InitInstance();
pApp->Run();
}
//------------------------------------------------------------------

 

Simulink HDL Coder中的BlackBox及RAM仿真初始化 两种RAM--HDL Demo模块&EML 源文件下载:http://download.csdn.net/source/3144044    屏幕剪辑的捕获时间: 2011/3/29 14:05 HDL Demo中的RAM模块可以直接生成HDL,设置下HDL Block Properties 的RAMStyle修改下,默认的生成的占用资源比较大(Altera的)。 阅读详情

相关推荐

三、MFC 六大关键技术仿真 (学习笔记)

演化(evolution)永远在进行, 这个世界却不是每天都有革命(revolution)发生。 Application Framework 在软件界确实称得上具有革命精神。 项目目录: mfc31:全局对象theApp的构造过程 mfc32:使用cWinApp通过afxgetapp()指向theApp并调用initapplication、initinstance的过程(有图

长乐未央 2117

Silvaco学习笔记(二)毕设相关

毕设学习笔记——PIN器件击穿特性研究

qq_48136563的博客 1万+

【PX4 EKF simulink仿真程序解析】(一)初始化

PX4 EKF Simulink仿真梳理,初始化阶段梳理

qq_38041309的博客 1596

MFC程序初始化过程仿真(参考了侯俊杰的《深入浅出MFC》)

下面的Windows Console程序是MFC程序初始化过程仿真,如下: #include using namespace std; // MFCclass CObject{}; class CCmdTarget : public CObject{}; class CWinThread : public CCmdTarget { public: virtual void In

认知 行动 坚持 8888

深入浅出MFC学习笔记:MFC六大关键技术仿真MFC程序的初始化过程

MFC程序的初始化过程 参考文献:深入浅出MFC-侯捷 下面交代主要的类: 下面列出主要的类和一些重要的函数: 程序的流程如下: 总结起来如下:

newner的专栏 1054

MFC六大关键技术仿真

侯老师介绍了这六大技术的仿真MFC 程序的初始化过程RTTI(Runtime Type Information)执行时期型别信息Dynamic Creation 动态生成Persistence 永续留存Message Mapping 消息映射Message Routing 消息绕行 最高原则是:简化再简化,简化到不能再简化。以下所有程序的类别阶层架构、

路径的专栏 799

MFC六大关键技术仿真学习笔记(一)

相信大多数MFC初学者都有一种这种感觉,MFC的框架如此复杂,宏定义虚函数让你不知所措,和传统的Win32SDK编程相比,MFC确实让你足够头疼,粗略看看你发现找到Winmain和WndProc都不是一件容易的事。《深入浅出MFC》第三章将MFC关键技术仿真出来,让你领略Application framework的内部机制,当然,这并不是一件容易的事情,从粗读到理解运用,这是一个付出心血的过程

Jovi’s Blog 1437

关于看MFC六大仿真技术的一点感想

深入浅出  MFC                                                                     ——关于六大仿真技术的模拟 关于原书的用consol仿真MFC程序对于只学习过C++的人而言无疑是巨大的挑战,但我认为着为初学者而言,重要的不是去弄懂如何去写那些仿真的console程序,重要的是对于MFC的流程问题,搞清楚MFC的运作

Hedpat's Blog | 黯風夜隱 811

MFC六大关键技术仿真学习笔记(二)

上一节简单学习了关于MFC中简单的层次结构,而MFC程序的初始化过程究竟是怎么样的呢,与普通Win32初始化的联系又在哪呢?         Win32程序通过RegisterClass,CreateWindow,ShowWindow,UpdateWindow实现对程序的初始化,下面我们来看对MFC初始化仿真

Jovi’s Blog 927

MFC六大关键技术

MFC六大关键技术初始化过程 我并不认为MFC减轻了程序员们的负担,MFC出现的目的虽然似乎是为了让程序员不用懂得太多就可以进行视窗编程,但本人在MFC里徘徊了很久很久(因为那时没有书本详细介绍MFC的原理),毫无收获。可能朋友们会说,怎么一定要了解MFC的具体呢,“黑箱”作业不行吗?这不是微软的初衷吗?   不行!!!如果这样,我宁愿永远不选择MFC!在学电脑之前,本人学习的东西大

明月松间照,清泉石上流! 746

3.MFC六大关键技术仿真(深入浅出MFC之读书笔记)

全局对象theApp的构造将早于程序进入点,调用全局函数AfxGetApp以取得theApp的对象指针(其实是获得成员变量theApp.m_pCurrentWinApp,且该成员变量继承自CWinApp类,是一个CWinApp*指针)。 MFC程序的初始化过程: CWinApp::InitApplication; CMyWinApp::InitInstance; CMyFrameWnd::

goldenblood1988的专栏 366

深入浅出MFC

最近一两年都在搞Java,C++逐渐生疏了。现在换工作又重新搞起了C++。其实学了多种语言后,就会发现语言真的没那么重要。基础的东西,如算法、数据结构、文件操作、进程、线程、同步机制,都是超出语言而存在的。即便具体到实现代码,也是相差无几。 最近忧心忡忡,工作多年,接触太多技术,可都没有深入和系统。一定要横刀立马,誓要作出成绩。 MFC早已是弃子,但《深入浅出MFC》仍旧是如此经典,以至于超出MF...

月寒日暖的博客 1万+

MFC六大关键技术仿真学习笔记(七)

从学习Windows的消息机制学习到MFC的消息映射,这是我最喜欢的一节。在Win32编程中,你回去定义各种消息,在WndProc中通过switch ..case..进行消息的分类处理。带着这种思维走进MFC,你会发现MFC采用一种消息映射表模式来简化消息处理。虽说书上理解起来很简单,关于消息如何在MFC框架中流动,其中原理是什么,这才是我们应该学会的,而不是仅仅学会如何使用。

Jovi’s Blog 866

深入浅出MFC学习笔记 第三章 MFC六大关键技术仿真

0:MFC类层次结构 1:MFC程序的初始化过程CWinApp::InitApplication()CMyWinApp::InitInstance()CMyFrameWnd::CMyFrameWnd()CFrameWnd::Create()CWnd:CreateEx()CFrameWnd::PreCreateWindow()CWinApp::Run()CWinThread:...

226

深入浅出MFC学习笔记:MFC六大关键技术仿真之RTTI运行时类型识别

RTTI(运行时类型识别)    参考文献:深入浅出MFC-侯捷 怎样去构造类别型录网? 一、定义数据结构: 其中pFirstClass指针属于痊愈变量,所以它应该以static修饰之。 而且我们最终希望达到以下这样子的效果:构造成如下的类别型录  二、具体做法: 1.在头文件和cpp文件中放入两个神奇的宏:   (1)DECLARE宏的定义

newner的专栏 973

深入浅出MFC学习笔记:(第三章MFC六大关键技术仿真:类型识别,动态创建) .

第三章:MFC六大关键技术仿真:类型识别    深入理解MFC内部运行原理,是本次学习《深入浅出MFC》的主要目的。要模仿的六大技术包括: 1:MFC程序的初始化过程。 2:RTTI(Runtime type identification)运行时类型识别。 3:Dynamic creation 动态创建 4:Persistence永久保存 5:消息映射 6:消息传递。 RT

ithzhang 5935

《深入浅出MFC》_第3章 MFC 六大关键技术仿真_Frame2 范例程序_输出分析

//********************************MFC.H*************************** #define BOOL int #define TRUE 1 #define FALSE 0 #include class CObject { public: CObject::CObject() {

woniupengpeng的专栏 596
上一篇: MFC 六大关键技术之仿真——全局变量的调用
下一篇: 4月21号
lecone
博客等级 码龄21年 6粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值