| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339 |
- // DisplayWnd.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "resource.h"
- #include "DisplayWnd.h"
- #include "DockPane.h"
- #include "ViewMgr.h"
- #include "ControlShell.h"
- #pragma region AboutDlg
- class CAboutDlg : public CDialogEx
- {
- public:
- CAboutDlg();
- // 对话框数据
- enum { IDD = IDD_ABOUTBOX };
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
- virtual BOOL OnInitDialog();
- // 实现
- protected:
- DECLARE_MESSAGE_MAP()
- };
- CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
- {
- }
- void CAboutDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- }
- BOOL CAboutDlg::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
- // TODO: 在此添加额外的初始化
- CStatic* pLogoCtrl = (CStatic*)GetDlgItem(IDC_STATIC_LOGO);
- #ifdef _VERSION_EHANG
- HBITMAP bm = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BMP_LOGO_EHANG));
- if(bm != NULL)
- pLogoCtrl->SetBitmap(bm);
- SetDlgItemText(IDC_STATIC_ABOUT_VERSION, _T("毅航Ehangcom_StableCore子系统V4.0"));
- SetDlgItemText(IDC_STATIC_ABOUT_RIGHT, _T("Copyright (C) 2015 广州市毅航互联通信股份有限公司"));
- #else
- pLogoCtrl->ModifyStyle(SS_BITMAP, SS_ICON);
- HICON Icon = LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_MAINFRAME));
- if(Icon != NULL)
- pLogoCtrl->SetIcon(Icon);
- SetDlgItemText(IDC_STATIC_ABOUT_VERSION, _T("河南华谊中间件_StableCore子系统V4.0"));
- SetDlgItemText(IDC_STATIC_ABOUT_RIGHT, _T("Copyright (C) 2015 河南华谊网络科技有限公司"));
- #endif
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
- BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
- END_MESSAGE_MAP()
- #pragma endregion
- // CDisplayWnd
- IMPLEMENT_DYNCREATE(CDisplayWnd, CFrameWndEx)
- CDisplayWnd::CDisplayWnd()
- {
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
- }
- CDisplayWnd::~CDisplayWnd()
- {
- }
- /*****************************************************************
- **【函数名称】 Show
- **【函数功能】 显示窗口
- **【参数】
- **【返回值】
- ****************************************************************/
- void CDisplayWnd::Show( void )
- {
- LoadFrame(IDR_MAINFRAME);
- ShowWindow(SW_SHOWMAXIMIZED);
- UpdateWindow();
- CViewMgr::GetInstance().setup(this);
- }
- /*****************************************************************
- **【函数名称】 OnNewPane
- **【函数功能】 新增Pane的处理函数
- **【参数】
- **【返回值】
- ****************************************************************/
- void CDisplayWnd::OnNewPane( CDockPane* pPane )
- {
- ASSERT(pPane != NULL);
- DockPane(pPane);
- }
- BEGIN_MESSAGE_MAP(CDisplayWnd, CFrameWndEx)
- ON_MESSAGE(WM_CORE_EVENT, OnCoreEvent)
- ON_WM_CREATE()
- ON_WM_CLOSE()
- ON_COMMAND(ID_MENU_ABOUT, &CDisplayWnd::OnMenuAbout)
- ON_COMMAND(ID_MENU_EXIT, &CDisplayWnd::OnMenuExit)
- ON_COMMAND(ID_MENU_LOG_START, &CDisplayWnd::OnMenuLogStart)
- ON_COMMAND(ID_MENU_LOG_STOP, &CDisplayWnd::OnMenuLogStop)
- ON_COMMAND(ID_MENU_VIEW_LOG, &CDisplayWnd::OnMenuViewLog)
- ON_COMMAND(ID_MENU_VIEW_VOIP, &CDisplayWnd::OnMenuViewVoip)
- ON_COMMAND(ID_MENU_VIEW_DSP, &CDisplayWnd::OnMenuViewDsp)
- ON_COMMAND(ID_MENU_VIEW_DTI, &CDisplayWnd::OnMenuViewDti)
- ON_COMMAND(ID_MENU_VIEW_IPM, &CDisplayWnd::OnMenuViewIpm)
- ON_COMMAND(ID_MENU_VIEW_MEETING, &CDisplayWnd::OnMenuViewMeeting)
- ON_UPDATE_COMMAND_UI(ID_MENU_LOG_START, &CDisplayWnd::OnUpdateMenuLogStart)
- ON_UPDATE_COMMAND_UI(ID_MENU_LOG_STOP, &CDisplayWnd::OnUpdateMenuLogStop)
- ON_WM_SYSCOMMAND()
- ON_WM_TIMER()
- END_MESSAGE_MAP()
- static UINT indicators[] =
- {
- ID_SEPARATOR, // 状态行指示器
- IDS_STR_PRODUCT,
- IDS_STR_RIGHT,
- };
- // CDisplayWnd 消息处理程序
- LRESULT CDisplayWnd::OnCoreEvent( WPARAM wParam, LPARAM lParam )
- {
- UINT Event = (UINT)wParam;
- switch(Event)
- {
- case CORE_EVENT_DEV_RES_NEW:
- {
- DEV_RES_ID* pResId = (DEV_RES_ID*)lParam;
- ASSERT(pResId != NULL);
- CViewMgr::GetInstance().onResNew(pResId);
- ASSERT(pResId == NULL);
- }
- break;
- case CORE_EVENT_DEV_RES_DEL:
- {
- DEV_RES_ID* pResId = (DEV_RES_ID*)lParam;
- ASSERT(pResId != NULL);
- CViewMgr::GetInstance().onResDel(pResId);
- ASSERT(pResId == NULL);
- }
- break;
- case CORE_EVENT_DEV_RES_STATE:
- {
- DEV_RES_ID* pResId = (DEV_RES_ID*)lParam;
- ASSERT(pResId != NULL);
- CViewMgr::GetInstance().onResState(pResId);
- ASSERT(pResId == NULL);
- }
- break;
- case CORE_EVENT_DEV_CLOSE:
- {
- LOGGER(LOG_CLASS_BUSI, LOG_LEVEL_ERROR, _T("{UI}: 与设备连接中断,系统在30秒后退出,稍后将自行重启!"));
- SetTimer(ms_QuitTimer, 30 * 1000, NULL);
- }
- break;
- }
- return 0;
- }
- int CDisplayWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CFrameWndEx::OnCreate(lpCreateStruct) == -1)
- return -1;
- // 设置主窗口标记
- ::SetProp(m_hWnd, AfxGetApp()->m_pszAppName, (HANDLE)1);
- // 设置图标
- SetIcon(m_hIcon, TRUE); // 设置大图标
- SetIcon(m_hIcon, FALSE); // 设置小图标
- // 添加菜单
- CMenu menu;
- menu.LoadMenu(IDR_MAINFRAME);
- SetMenu(&menu);
- menu.Detach();
- if (!m_wndStatusBar.Create(this))
- {
- TRACE0("未能创建状态栏\n");
- return -1; // 未能创建
- }
- m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
- // 设置停靠属性
- //GetDockingManager()->DisableRestoreDockState(TRUE);
- //EnableLoadDockState(TRUE);
- EnableDocking(CBRS_ALIGN_ANY);
- CDockingManager::SetDockingMode(DT_SMART);
- EnableAutoHidePanes(CBRS_ALIGN_ANY);
- return 0;
- }
- void CDisplayWnd::OnClose()
- {
- CControlShell::GetInstance().close();
- CFrameWndEx::OnClose();
- }
- void CDisplayWnd::OnMenuAbout()
- {
- CAboutDlg Dlg;
- Dlg.DoModal();
- }
- void CDisplayWnd::OnMenuViewLog()
- {
- // TODO: 在此添加命令处理程序代码
- CViewMgr::GetInstance().showLogView();
- }
- void CDisplayWnd::OnMenuExit()
- {
- // TODO: 在此添加命令处理程序代码
- PostMessage(WM_SYSCOMMAND, SC_CLOSE);
- }
- void CDisplayWnd::OnMenuLogStart()
- {
- // TODO: 在此添加命令处理程序代码
- ILogger::getInstance().start();
- }
- void CDisplayWnd::OnMenuLogStop()
- {
- // TODO: 在此添加命令处理程序代码
- ILogger::getInstance().stop();
- }
- void CDisplayWnd::OnUpdateMenuLogStart(CCmdUI *pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- if(ILogger::getInstance().isStart())
- pCmdUI->SetCheck();
- else
- pCmdUI->SetCheck(0);
- }
- void CDisplayWnd::OnUpdateMenuLogStop(CCmdUI *pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- if(ILogger::getInstance().isStart())
- pCmdUI->SetCheck(0);
- else
- pCmdUI->SetCheck(1);
- }
- void CDisplayWnd::OnMenuViewVoip()
- {
- CViewMgr::GetInstance().showResView(DEV_RES_TYPE_VOIP);
- }
- void CDisplayWnd::OnMenuViewDsp()
- {
- // TODO: 在此添加命令处理程序代码
- CViewMgr::GetInstance().showResView(DEV_RES_TYPE_DSP);
- }
- void CDisplayWnd::OnMenuViewDti()
- {
- // TODO: 在此添加命令处理程序代码
- CViewMgr::GetInstance().showResView(DEV_RES_TYPE_TRUNK);
- }
- void CDisplayWnd::OnMenuViewIpm()
- {
- // TODO: 在此添加命令处理程序代码
- CViewMgr::GetInstance().showResView(DEV_RES_TYPE_IPM);
- }
- void CDisplayWnd::OnMenuViewMeeting()
- {
- //CViewMgr::GetInstance().showResView(DEV_RES_TYPE_CONFERENCE);
- }
- void CDisplayWnd::OnSysCommand(UINT nID, LPARAM lParam)
- {
- // TODO: 在此添加消息处理程序代码和/或调用默认值
- if(nID == SC_CLOSE)
- {
- if(MessageBox(_T("确定要退出SC吗"), _T("提示"), MB_OKCANCEL) == IDCANCEL)
- return;
- }
- CFrameWndEx::OnSysCommand(nID, lParam);
- }
- void CDisplayWnd::OnTimer(UINT_PTR nIDEvent)
- {
- // TODO: 在此添加消息处理程序代码和/或调用默认值
- if(nIDEvent == ms_QuitTimer)
- {
- KillTimer(nIDEvent);
- PostMessage(WM_CLOSE);
- }
- CFrameWndEx::OnTimer(nIDEvent);
- }
|