📄 mainfrm.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 + -