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

📄 mainfrm.cpp

📁 EVC环境
💻 CPP
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//

#include "stdafx.h"
#include "FlightQuery.h"

#include "MainFrm.h"

#include "FlightQueryView.h"
#include "BthSet.h"
#include "QueryView.h"

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


#define PSPC_TOOLBAR_HEIGHT 24

const DWORD dwAdornmentFlags = 0; // exit button

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

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
	//{{AFX_MSG_MAP(CMainFrame)
	ON_WM_CREATE()
	ON_COMMAND(ID_BthSet, OnBthSet)
	ON_COMMAND(ID_FLIGHTQUERY, OnFlightquery)
	ON_COMMAND(ID_MAIN, OnMain)
	ON_WM_SIZE()
	//}}AFX_MSG_MAP
	ON_MESSAGE(WM_USER_COMMAND, OnUserCommand) //自定义消息处理
END_MESSAGE_MAP()

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

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

CMainFrame::~CMainFrame()
{
}

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
		return -1;
	m_wndCommandBar.m_bShowSharedNewButton = TRUE;
	m_ToolTipsTable[0] = MakeString(IDS_NEW);
	m_ToolTipsTable[1] = MakeString(IDS_FILE);
	m_ToolTipsTable[2] = MakeString(IDS_MHELP);
	m_ToolTipsTable[3] = MakeString(IDS_CUT);
	m_ToolTipsTable[4] = MakeString(IDS_COPY);
	m_ToolTipsTable[5] = MakeString(IDS_PASTE);
	m_ToolTipsTable[6] = MakeString(IDS_ABOUT);  

	if(!m_wndCommandBar.Create(this) ||
	   !m_wndCommandBar.InsertMenuBar(IDR_MAINFRAME) ||
	   !m_wndCommandBar.AddAdornments() ||
	   !m_wndCommandBar.LoadToolBar(IDR_MAINFRAME)  ||
		!m_wndCommandBar.SendMessage(TB_SETTOOLTIPS, (WPARAM)(7), (LPARAM)(m_ToolTipsTable)))
	{
		TRACE0("Failed to create CommandBar\n");
		return -1;      // fail to create
	}

	m_wndCommandBar.SetBarStyle(m_wndCommandBar.GetBarStyle() |
		CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_FIXED);

	return 0;
}

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;
}



LPTSTR CMainFrame::MakeString(UINT stringID)
{
	TCHAR buffer[255];
	TCHAR* theString;

	::LoadString(AfxGetInstanceHandle(), stringID, buffer, 255);
	theString = new TCHAR[lstrlen(buffer) + 1];
	lstrcpy(theString, buffer);
	return theString;
}   

 
/////////////////////////////////////////////////////////////////////////////
// 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::SwitchToForm(m_enumView nView)
{
	CView* pOldActiveView = GetActiveView();
	CView* pNewActiveView = (CView*)GetDlgItem(nView);
	if(pNewActiveView == NULL)
	{
		switch(nView)
		{
		case ViewMain:
			{pNewActiveView =(CView*) new CFlightQueryView; break;}
		case ViewBth:
			{pNewActiveView =(CView*) new CBthSet; break;}
		case ViewQuery:
			{pNewActiveView =(CView*) new CQueryView; break;}

		default:
			{AfxMessageBox(_T("Fatal Error in switch form."));break;}
		}
		CCreateContext context;
		context.m_pCurrentDoc = pOldActiveView->GetDocument();
		pNewActiveView->Create(NULL,NULL,0,CFrameWnd::rectDefault,this,nView,&context);
		pNewActiveView->OnInitialUpdate();
	}
	SetActiveView(pNewActiveView);
	pNewActiveView->ShowWindow(SW_SHOW);
	pOldActiveView->ShowWindow(SW_HIDE);
	if(pOldActiveView->GetRuntimeClass() == RUNTIME_CLASS(CFlightQueryView))
		pOldActiveView->SetDlgCtrlID(ViewMain);
	else if(pOldActiveView->GetRuntimeClass() == RUNTIME_CLASS(CBthSet))
		pOldActiveView->SetDlgCtrlID(ViewBth);
	else if(pOldActiveView->GetRuntimeClass() == RUNTIME_CLASS(CQueryView))
		pOldActiveView->SetDlgCtrlID(ViewQuery);
	else AfxMessageBox(_T("Fatal Error in switch form."));
	pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
	RecalcLayout();
	delete pOldActiveView;

}

LRESULT CMainFrame::OnUserCommand(WPARAM wp, LPARAM lp)
{
	//if you want to add border to the view, you can refer to the code above 
//	pNewActiveView->Create(NULL,NULL, WS_BORDER, CFrameWnd::rectDefault, this, nView, &context);

	SwitchToForm((m_enumView)wp);
	return S_OK;
}

void CMainFrame::OnBthSet() 
{
	// TODO: Add your command handler code here
	::PostMessage(AfxGetMainWnd()->m_hWnd,WM_USER_COMMAND, CMainFrame.ViewBth, 0);
}

void CMainFrame::OnFlightquery() 
{
	// TODO: Add your command handler code here
	::PostMessage(AfxGetMainWnd()->m_hWnd,WM_USER_COMMAND, CMainFrame.ViewQuery, 0);
}

void CMainFrame::OnMain() 
{
	// TODO: Add your command handler code here
	::PostMessage(AfxGetMainWnd()->m_hWnd,WM_USER_COMMAND, CMainFrame.ViewMain, 0);
}

void CMainFrame::OnSize(UINT nType, int cx, int cy) 
{
	CFrameWnd::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here
//	CView::OnSize(nType, cx, cy);

//	if (m_tabbth.GetSafeHwnd())
//	m_tabbth.MoveWindow(0, 0, cx, cy);
}

⌨️ 快捷键说明

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