MFC CWinApp派生类中使用CFrameWnd派生类的成员函数Create来创建窗口

原创 2013年12月02日 14:34:17

在MFC程序中出现的问题是:在CWinApp的派生类中,使用p_MainWnd指向使用new创建的CFrameWnd派生类的对象指针,然后使用该指针调用CFrameWnd的成员函数Create,但是结果并不是我所期望的结果--->指向的是CWinApp的成员函数Create函数--->代码:

  BOOL CTWinApp::InitInstance()
{
 //需要考虑到指针的生命周期
 m_pMainWnd = new CMainWindow();
 //m_PMainWnd->Create(----);出现错误,不是所期望的函数

 if( !m_pMainWnd )
 {
  _tprintf(_T("new CFrameWndfalse\r\n"));
 }

 m_pMainWnd->ShowWindow(m_nCmdShow);
 m_pMainWnd->UpdateWindow();
 return TRUE;

}

那么就解决指针的类型,进行转换,在MFC中使用的静态和动态的指针转换:

dynamic_cast(m_pMainWnd)->MyInit();//检查指针的类型
 //static_cast(p)->MyInit();//不检查指针的类

这样就可以指向CFrameWnd的成员函数了。

 

 

相关文章推荐

基类成员函数重载后派生类的使用。

当基类成员函数发生重载时在派生类中需要加入using 声明语句,否则将会发生同名函数隐藏的结果;#include using namespace std; class A { public: ...

在继承中派生类成员函数的访问权限测试

派生类对自身基类的private成员没有访问权限,对基类对象的protected成员没有访问权限,对派生类对象的(基类之外)的private和protected成员具有访问权限。 由于C++基础不好...

第十六周oj刷题——Problem J: B3 指向基类的指针访问派生类的成员函数

Description领导类(Leader)和工程师类(Engineer)都是人类(Person)的派生类。请将下面代码中空缺的部分填上,使main函数中能通过指向Person类的指针,调用Leade...

《第十二周任务一》理解基类中成员函数的访问限定符和派生类的继承方式

/*【任务1】理解基类中成员的访问限定符和派生类的继承方式  由下面派生类Student1对基类Student的继承……  (1)请修改基类中成员的访问限定符和派生类的继承方式,考虑可能的运行结果...

YTU-OJ-Problem J: B3 指向基类的指针访问派生类的成员函数

Problem J: B3 指向基类的指针访问派生类的成员函数 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 241  Solved: 41 [Su...
  • MIKASA3
  • MIKASA3
  • 2015年06月24日 09:11
  • 445

《虚函数——用基类指针访问派生类中的成员函数》

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 《...

C++继承详解之二——派生类成员函数详解(函数隐藏、构造函数与兼容覆盖规则)

在这一篇文章开始之前,我先解决一个问题。 在上一篇C++继承详解之一——初探继承中,我提到了在派生类中可以定义一个与基类成员函数同名的函数,这样派生类中的函数就会覆盖掉基类的成员函数。 在谭浩强的C+...

C++如何在派生类成员函数内调用基类的成员函数(包括构造函数)

前段时间在实现一段代码的过程中遇到了几个
  • yums467
  • yums467
  • 2014年11月14日 17:53
  • 2512
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC CWinApp派生类中使用CFrameWnd派生类的成员函数Create来创建窗口
举报原因:
原因补充:

(最多只允许输入30个字)