⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 故障测距软件编程
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "故障测距.h"

#include "MainFrm.h"

#include "FaultData.h"
#include "故障测距View.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CMainFrame

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_COMMAND(ID_LINE_DATA, OnLineData)
	ON_COMMAND(ID_FAULT_DATA, OnFaultData)
	ON_COMMAND(ID_FAULT_LOCATION, OnFaultLocation)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction

CMainFrame::CMainFrame()
{
	// TODO: add member initialization code here
	
}

CMainFrame::~CMainFrame()
{
}

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
	if( !CFrameWnd::PreCreateWindow(cs) )
		return FALSE;
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return TRUE;
}

/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics

#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
	CFrameWnd::AssertValid();
}

void CMainFrame::Dump(CDumpContext& dc) const
{
	CFrameWnd::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers


void CMainFrame::OnLineData() 
{
	SwitchToForm(IDD_MY_FORM) ;
}

void CMainFrame::OnFaultData() 
{
	SwitchToForm(IDD_FAULT_DATA) ;
}

void CMainFrame::OnFaultLocation() 
{
	
}


void CMainFrame::SwitchToForm(int nForm)               //进行视图切换的代码函数
{
	  //CDocument* pDoc = GetActiveDocument();
    CView *pOldActiveView=GetActiveView();             //保存旧视图
    CView *pNewActiveView=(CView*)GetDlgItem(nForm);   //取得新视图
    if(pNewActiveView==NULL)
    {
        switch(nForm)
            //这些ID是对话框的标志符,但也可以用其他的标志
        {
        case IDD_MY_FORM :
            pNewActiveView=(CView*)new CMyView;
			break;
        case IDD_FAULT_DATA :
            pNewActiveView=(CView*)new CFaultData;
            break;
        }
        CCreateContext context;   //将文挡和视图相连
        context.m_pCurrentDoc=pOldActiveView->GetDocument();
		pNewActiveView->Create(NULL, NULL, WS_BORDER|WS_CHILD ,
            CFrameWnd::rectDefault, this, nForm, &context);


        pNewActiveView->OnInitialUpdate();
    }
    SetActiveView(pNewActiveView);        //改变活动的视图
    pNewActiveView->ShowWindow(SW_SHOW);  //显示新的视图
    pOldActiveView->ShowWindow(SW_HIDE);  //隐藏旧的视图

    if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CMyView))
	{
		pOldActiveView->SetDlgCtrlID(IDD_MY_FORM);
	}


	else if(pOldActiveView->GetRuntimeClass() ==RUNTIME_CLASS(CFaultData))
		pOldActiveView->SetDlgCtrlID(IDD_FAULT_DATA);

    pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
    
    

	delete pOldActiveView;   //删除旧视图
	
	RecalcLayout();          //调整框架窗口
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -