如何获得CMainFrame的指针? 我在CChildFrame中分割成两个视图现在我的一个视图要调用Mainfrm中的成员,如何得到CMainFrame的指针。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在View中获得MainFrame指针 CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd; CMainFrame *pMainFrame = (CMainFrame *)AfxGetMainFrame(); 这两种我都用过了,执行第一句就是弹出异常错误。CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;pMain->m_wndStatusBar.SetPaneText( 0, "START RETRIEVING PACKETS...", TRUE );我在CMainFrame 中还新建了个子窗体,代码是这样的。void CMainFrame::OnNewDetail() { // TODO: Add your command handler code here CMDIChildWnd* pActiveChild=MDIGetActive(); CDocument* pDocument; if(pActiveChild==NULL || (pDocument=pActiveChild->GetActiveDocument())==NULL) { TRACE("Warning:No active document for WindowNew command\n"); AfxMessageBox(AFX_IDP_COMMAND_FAILURE); return; } CDocTemplate* pTemplate=((CGetPacketApp*)AfxGetApp())->m_pTemplateDetail; ASSERT_VALID(pTemplate); CFrameWnd* pFrame=pTemplate->CreateNewFrame(pDocument,pActiveChild); if(pFrame==NULL) { TRACE("Warning:failed to create new frame\n"); AfxMessageBox(AFX_IDP_COMMAND_FAILURE); return; } pTemplate->InitialUpdateFrame(pFrame,pDocument);}同样我在app文件中加了个模板。 m_pTemplateDetail= new CMultiDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CGetPacketDoc), RUNTIME_CLASS(CDetalChildFram), // custom MDI child frame RUNTIME_CLASS(CDetailView));会不会跟这个有关? #include "mainfrm.h" 加了么 都没有用啊我用sdi都行,到了mdi就不行了,真实奇怪 还有一种方法:#include "mainfrm.h" extern ?????App theApp;CMainFrame* pMainFrm=(CMainFrame*)theApp.m_pMainWnd; (CMainFrame*)(::AfxGetApp())->GetMainWnd(); pMain->m_wndStatusBar是私有成员,把它移到piblic下面 调试,CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;这句话执行都有问题吗 如何判断一组数据的值很接近 MFC高手进 一个关于string 的简单问题! 自定义ccombobox 使用DOM解析大数据量的XML出问题,请问高手们有没有解析大数据量XML的解析器? 请教关于按钮控件和与Excel等OFFICE软件"沟通"的编程 如何在删除大量的数据库记录和文件时,弹出个向WINDOWS删除那样的框框? 关于打印 高手帮帮忙!!!如何在打印机打印粗线 Installshield的中文问题! 新手请教几个问题 急,远程连接SQL数据库问题
CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
pMain->m_wndStatusBar.SetPaneText( 0, "START RETRIEVING PACKETS...", TRUE );我在CMainFrame 中还新建了个子窗体,代码是这样的。
void CMainFrame::OnNewDetail()
{
// TODO: Add your command handler code here
CMDIChildWnd* pActiveChild=MDIGetActive();
CDocument* pDocument;
if(pActiveChild==NULL || (pDocument=pActiveChild->GetActiveDocument())==NULL)
{
TRACE("Warning:No active document for WindowNew command\n");
AfxMessageBox(AFX_IDP_COMMAND_FAILURE);
return;
}
CDocTemplate* pTemplate=((CGetPacketApp*)AfxGetApp())->m_pTemplateDetail;
ASSERT_VALID(pTemplate);
CFrameWnd* pFrame=pTemplate->CreateNewFrame(pDocument,pActiveChild);
if(pFrame==NULL)
{
TRACE("Warning:failed to create new frame\n");
AfxMessageBox(AFX_IDP_COMMAND_FAILURE);
return;
}
pTemplate->InitialUpdateFrame(pFrame,pDocument);
}
同样我在app文件中加了个模板。
m_pTemplateDetail= new CMultiDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CGetPacketDoc),
RUNTIME_CLASS(CDetalChildFram), // custom MDI child frame
RUNTIME_CLASS(CDetailView));会不会跟这个有关?
#include "mainfrm.h"
extern ?????App theApp;CMainFrame* pMainFrm=(CMainFrame*)theApp.m_pMainWnd;