| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367 |
- /**************************************************************************************************
- 版本所有(C), 2020-2022, 北京普达迪泰
- ***************************************************************************************************
- 文 件 名: MainFrm.cpp
- 功能描述: 程序主框架
- 版 本 号: 1.00初版
- 作 者: HYF
- 生成日期; 2021-12-20
- 最近修改:
- 函数列表:
- 修改历史:
- 1.日 期 :2021-12-20
- 作 者 : HYF
- 修改内容 : 创建文件
- **************************************************************************************************/
- // MainFrm.cpp: CMainFrame 类的实现
- #include "pch.h"
- #include "Dms.h"
- #include "MainFrm.h"
- #include "StartView.h"
- #include "StaticTask.h"
- #include "DynamicTask.h"
- #include "EquipTypeView.h"
- #include "ReportView.h"
- #include "IDPMSManager.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- #define TIMER_SECOND 1
- // CMainFrame
- IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
- BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
- ON_WM_CREATE()
- //ON_COMMAND(IDM_EQUIPMENT_VIEW, &CMainFrame::OnEquipmentView)
- //ON_COMMAND(IDM_REPORT_VIEW, &CMainFrame::OnReportView)
- //ON_COMMAND(IDM_START, &CMainFrame::OnStartView)
- //ON_COMMAND(IDM_HELP, &CMainFrame::OnHelp)
- ON_UPDATE_COMMAND_UI(ID_INDICATOR_TIME, OnUpdateStatusTime)
- ON_WM_GETMINMAXINFO()
- ON_MESSAGE(WM_START_STATIC, &CMainFrame::OnStartStaticTask)
- ON_MESSAGE(WM_START_DYNAMIC, &CMainFrame::OnStartDynamicTask)
- ON_MESSAGE(WM_BACK_TO_START, &CMainFrame::OnBackToStart)
- ON_WM_DESTROY()
- ON_WM_TIMER()
- END_MESSAGE_MAP()
- static UINT indicators[] =
- {
- ID_SEPARATOR, // 状态行指示器
- ID_INDICATOR_TIME,
- ID_INDICATOR_CAPS,
- ID_INDICATOR_NUM,
- ID_INDICATOR_SCRL,
- };
- // CMainFrame 构造/析构
- CMainFrame::CMainFrame() noexcept
- {
- m_CurViewId = IDD_VIEW_START;
- }
- CMainFrame::~CMainFrame()
- {
- }
- /**************************************************************************************************
- 函 数 名 :OnCreate
- 功能描述 :创建窗口初始化
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- this->SetMenu(NULL);
- if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
-
- if (!m_wndStatusBar.Create(this))
- {
- TRACE0("未能创建状态栏\n");
- return -1; // 未能创建
- }
- m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
- m_wndStatusBar.SetPaneInfo(1, ID_INDICATOR_TIME, SBPS_NORMAL, 120);
- // 初始化IDPMS
- IDPMSManager *pManager = IDPMSManager::GetManager();
-
- // 时间定时器
- SetTimer(TIMER_SECOND, 1000, NULL);
- return 0;
- }
- // 窗口风格
- BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
- {
- if( !CFrameWnd::PreCreateWindow(cs) )
- return FALSE;
-
- cs.style &= -FWS_ADDTOTITLE;
- cs.style &= ~WS_THICKFRAME;
- cs.style |= WS_DLGFRAME;
- return TRUE;
- }
- // CMainFrame 诊断
- #ifdef _DEBUG
- void CMainFrame::AssertValid() const
- {
- CFrameWnd::AssertValid();
- }
- void CMainFrame::Dump(CDumpContext& dc) const
- {
- CFrameWnd::Dump(dc);
- }
- #endif //_DEBUG
- /**************************************************************************************************
- 函 数 名 :ActivateFrame
- 功能描述 :初始化窗口大小状态
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void CMainFrame::ActivateFrame(int nCmdShow)
- {
- nCmdShow = SW_SHOWMAXIMIZED;
- CFrameWnd::ActivateFrame(nCmdShow);
- }
- /**************************************************************************************************
- 函 数 名 :SwitchToForm
- 功能描述 :视图切换
- 输入参数 :nForm-视图资源ID
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void CMainFrame::SwitchToForm(int nForm, DWORD taskId)
- {
- if (m_CurViewId == nForm) return;
- // 当前视图
- CView *pOldActiveView = this->GetActiveView();
- // 新视图
- CView *pNewActiveView = (CView *)this->GetDlgItem(nForm);
- if (pNewActiveView == NULL) {
- switch (nForm) {
- case IDD_VIEW_START:
- pNewActiveView = (CView *)new CStartView();
- break;
- case IDD_VIEW_STATIC_TASK:
- pNewActiveView = (CView *)new CStaticTask();
- break;
- case IDD_VIEW_DYNAMIC_TASK:
- pNewActiveView = (CView *)new CDynamicTask();
- break;
- }
- // 创建新视图
- CCreateContext context;
- context.m_pCurrentDoc = pOldActiveView->GetDocument();
- pNewActiveView->Create(NULL, NULL, WS_CHILD, CFrameWnd::rectDefault, this, nForm, &context);
- pNewActiveView->OnInitialUpdate();
- }
- // 显示
- this->SetActiveView(pNewActiveView);
- pNewActiveView->ShowWindow(SW_SHOW);
- pOldActiveView->ShowWindow(SW_HIDE);
- if (pOldActiveView->GetRuntimeClass() == RUNTIME_CLASS(CStartView)) {
- pOldActiveView->SetDlgCtrlID(IDD_VIEW_START);
- }
- else if (pOldActiveView->GetRuntimeClass() == RUNTIME_CLASS(CStaticTask)) {
- pOldActiveView->SetDlgCtrlID(IDD_VIEW_STATIC_TASK);
- }
- else if (pOldActiveView->GetRuntimeClass() == RUNTIME_CLASS(CDynamicTask)) {
- pOldActiveView->SetDlgCtrlID(IDD_VIEW_DYNAMIC_TASK);
- }
- pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
- //delete pOldActiveView;
- // 调用初始化设置
- if (nForm == IDD_VIEW_STATIC_TASK) {
- CStaticTask *pStaticTask = (CStaticTask *)pNewActiveView;
- pStaticTask->InitFormData(taskId);
- }
- else if (nForm == IDD_VIEW_DYNAMIC_TASK) {
- CDynamicTask *pDynamicTask = (CDynamicTask *)pNewActiveView;
- pDynamicTask->InitFormData(taskId);
- }
- else if (nForm == IDD_VIEW_START) {
- CStartView *pStartView = (CStartView *)pNewActiveView;
- pStartView->InitFormData();
- }
- pNewActiveView->UpdateWindow();
- // 设整布局
- this->RecalcLayout();
- m_CurViewId = nForm;
- }
- // CMainFrame 消息处理程序
- /**************************************************************************************************
- 函 数 名 :OnEquipmentView
- 功能描述 :显示设备管理视图
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void CMainFrame::OnEquipmentView()
- {
- EquipTypeView dlg;
- if (dlg.DoModal() == IDOK)
- {
- }
- }
- /**************************************************************************************************
- 函 数 名 :OnReportView
- 功能描述 :显示测量报告视图
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void CMainFrame::OnReportView()
- {
- ReportView dlg;
- if (dlg.DoModal() == IDOK) {
- }
- }
- /**************************************************************************************************
- 函 数 名 :OnStartView
- 功能描述 :显示“开始”视图
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void CMainFrame::OnStartView()
- {
- this->SwitchToForm(IDD_VIEW_START, 0);
- }
- // 帮助
- void CMainFrame::OnHelp()
- {
- // TODO: 在此添加命令处理程序代码
- }
- // 更新窗口标题
- void CMainFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
- {
- CString szAppName;
- szAppName.Format(AFX_IDS_APP_TITLE);
- this->SetWindowText(szAppName);
- //CFrameWnd::OnUpdateFrameTitle(bAddToTitle);
- }
- // 设置窗口最大、最小、位置等初始信息
- void CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)
- {
- lpMMI->ptMinTrackSize.x = 1550;
- lpMMI->ptMinTrackSize.y = 920;
- CFrameWnd::OnGetMinMaxInfo(lpMMI);
- }
- /**************************************************************************************************
- 函 数 名 :OnStartStaticTask
- 功能描述 :显示“静态任务”视图
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- afx_msg LRESULT CMainFrame::OnStartStaticTask(WPARAM wParam, LPARAM lParam)
- {
- DWORD taskId = (DWORD)wParam;
- this->SwitchToForm(IDD_VIEW_STATIC_TASK, taskId);
- return 0;
- }
- /**************************************************************************************************
- 函 数 名 :OnStartDynamicTask
- 功能描述 :显示“动态任务”视图
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- afx_msg LRESULT CMainFrame::OnStartDynamicTask(WPARAM wParam, LPARAM lParam)
- {
- DWORD taskId = (DWORD)wParam;
- this->SwitchToForm(IDD_VIEW_DYNAMIC_TASK, taskId);
- return 0;
- }
- /**************************************************************************************************
- 函 数 名 :OnBackToStart
- 功能描述 :返回开始任务视图
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- afx_msg LRESULT CMainFrame::OnBackToStart(WPARAM wParam, LPARAM lParam)
- {
- this->SwitchToForm(IDD_VIEW_START, 0);
- return 0;
- }
- void CMainFrame::OnDestroy()
- {
- CFrameWnd::OnDestroy();
- KillTimer(TIMER_SECOND);
- }
- void CMainFrame::OnUpdateStatusTime(CCmdUI *pCmdUI)
- {
- pCmdUI->Enable(TRUE);
- }
- void CMainFrame::OnTimer(UINT_PTR nIDEvent)
- {
- CString szTime;
- CTime tTime = CTime::GetCurrentTime();
- switch (nIDEvent)
- {
- case TIMER_SECOND:
- szTime = tTime.Format(_T("%Y-%m-%d %H:%M:%S"));
- m_wndStatusBar.SetPaneText(1, szTime);
- break;
- default:
- break;
- }
- }
|