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

在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的成员函数了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值