//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 窗口被创建 VOID CMainWnd::OnCreate() { #ifdef _MAKELANG OnViewLanguage(IDM_View_Default); #else // 列出语言 if (CLanguage::List(GetSubMenu(GetSubMenu(m_hMenu, 2), 12)) != IDM_View_Default) { // 翻译菜单 CLanguage::TranslateMenu(m_hMenu, MAKEINTRESOURCE(IDR_Menu)); } #endif // 创建 CClientWnd::Create(); // 设置菜单项状态 OnViewMenu(); // 注册热键 RegisterHotKey(m_hWnd, IDC_TrayIcon, MOD_WIN, 'V'); // 读取新近文件列表 CRecentFile::Load(GetSubMenu(m_hMenu, 0), 4); // 设置同步状态 //CRawVideo::SetSync(CIni::GetInt(INI_Synchronize)); //CheckCommand(IDM_Play_Synchronize, CRawPlayer::m_bSync); }
BOOL CMainFrame::OnCommand(WPARAM wParam_, LPARAM lParam_) { // TODO: Add your specialized code here and/or call the base class UINT _uCmd = LOWORD(wParam_); if ((_uCmd >= IDM_View_Default) && (_uCmd <= IDM_View_Default + 49)) { // 改变语言 if (((MF_CHECKED & GetMenuState(this->GetMenu()->m_hMenu, _uCmd, MF_BYCOMMAND)) != MF_CHECKED)) { OnViewLanguage(_uCmd); } return 0; } return CFrameWnd::OnCommand(wParam_, lParam_); }
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct_) { #ifdef _TEST_CODE CDxfParserEx* creationClass = new CDxfParserEx(); DL_Dxf* dxf = new DL_Dxf(); if (!dxf->in("C:\\1.dxf", creationClass)) { return 0; } #endif if (CFrameWnd::OnCreate(lpCreateStruct_) == -1) return -1; if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME)) { TRACE0("未能创建工具栏\n"); return -1; // 未能创建 } if (!m_wndEditToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_LEFT | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !m_wndEditToolBar.LoadToolBar(IDR_EDIT)) { TRACE0("未能创建工具栏\n"); return -1; // 未能创建 } if (!CreateComboBox(ID_COMBOBOX)) { TRACE0("Failed to create combo box\n"); return -1; } if (!m_wndStatusBar.Create(this) || !m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT))) { TRACE0("未能创建状态栏\n"); return -1; // 未能创建 } // TODO: Delete these three lines if you don't want the toolbar to // be dockable // m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); // EnableDocking(CBRS_ALIGN_ANY); // DockControlBar(&m_wndToolBar); //////////////////////////////////////////// if( !m_wndCoolBar.Create(_T("控制栏"),this, CSize( 250, 400 ), TRUE, 123 ) ) { TRACE0("Failed to create mybar\n"); return -1; } //设置样式 m_wndCoolBar.SetBarStyle( m_wndCoolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC ); //设置停靠 m_wndCoolBar.EnableDocking( CBRS_ALIGN_ANY ); EnableDocking(CBRS_ALIGN_ANY); DockControlBar( &m_wndCoolBar, AFX_IDW_DOCKBAR_RIGHT);///停靠 ////// m_wndTabCtrl.Create( TCS_DOWN | WS_CHILD | WS_VISIBLE, CRect( 0, 0, 200, 200), &m_wndCoolBar, 125); //生成TOC对话框,并加入m_wndTabCtrl中 if( m_formDlg.Create( IDD_FORMVIEW, &m_wndTabCtrl ) ) m_wndTabCtrl.AddPage( &m_formDlg ,_T("控制")); m_formDlg.ShowWindow( SW_SHOW ); m_wndTabCtrl.UpdateWindow(); //////////////////////////////////////////// if( !m_wndBotmCoolBar.Create(_T("CNC控制栏"),this, CSize( 250, 165 ), TRUE, 123 ) ) { TRACE0("Failed to create mybar\n"); return -1; } //设置样式 m_wndBotmCoolBar.SetBarStyle( m_wndBotmCoolBar.GetBarStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC ); //设置停靠 m_wndBotmCoolBar.EnableDocking( CBRS_ALIGN_ANY ); EnableDocking(CBRS_ALIGN_ANY); DockControlBar( &m_wndBotmCoolBar, AFX_IDW_DOCKBAR_BOTTOM);///停靠 ////// m_tabCtrlBottom.Create( TCS_UP | WS_CHILD | WS_VISIBLE, CRect( 0, 0, 200, 200), &m_wndBotmCoolBar, 125); //生成TOC对话框,并加入m_wndTabCtrl中 if( m_dialogCCD.Create( IDD_FORMVIEW_CCD, &m_tabCtrlBottom ) ) { m_tabCtrlBottom.AddPage(&m_dialogCCD ,_T("CCD")); } m_dialogCCD.ShowWindow( SW_SHOW ); /*if(m_dialogCameraConfig.Create(IDD_CAMERA_CONFIG, &m_tabCtrlBottom)) m_tabCtrlBottom.AddPage( &m_dialogCameraConfig ,_T("相机参数配置")); if(m_dialogImageConfig.Create(IDD_IMAGE_CONFIG, &m_tabCtrlBottom)) m_tabCtrlBottom.AddPage( &m_dialogImageConfig ,_T("图像参数配置")); if(m_dialogMotionConfig.Create(IDD_MOTION_CONFIG, &m_tabCtrlBottom)) m_tabCtrlBottom.AddPage( &m_dialogMotionConfig ,_T("运动参数配置")); m_dialogMotionConfig,ShowWindow(SW_SHOW); m_dialogImageConfig.ShowWindow(SW_SHOW); m_dialogCameraConfig.ShowWindow( SW_SHOW );*/ m_wndTabCtrl.UpdateWindow(); // TODO: 如果不需要工具栏可停靠,则删除这三行 m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndToolBar); m_wndEditToolBar.EnableDocking(CBRS_ALIGN_ANY); DockControlBar(&m_wndEditToolBar); #ifdef _MAKELANG OnViewLanguage(IDM_View_Default); #else // 列出语言文件 if (CLanguage::List(GetSubMenu(GetSubMenu(this->GetMenu()->m_hMenu, 2), 3)) != IDM_View_Default) { CLanguage::TranslateMenu(this->GetMenu()->m_hMenu, MAKEINTRESOURCE(IDR_MAINFRAME)); } #endif //初始化运动控制卡 InitMCard(); RegistMsgWnd(m_hWnd); //SetTimer(100,300,NULL); return 0; }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 命令处理 VOID CMainWnd::OnCommand(WPARAM wParam, LPARAM lParam) { PTSTR p; DWORD dwSize; CChildWnd *pWnd; TCHAR tzTemp[512]; TCHAR tzPath[512]; if ((LOWORD(wParam) >= IDM_View_Default) && (LOWORD(wParam) < IDM_View_Default + 50)) { // 改变语言 if (IsMenuChecked(LOWORD(wParam)) == FALSE) { OnViewLanguage(LOWORD(wParam)); } return; } else if ((LOWORD(wParam) >= IDM_File_Recent) && (LOWORD(wParam) < IDM_File_Recent + 10)) { // 打开新近文件 GetMenuString(m_hMenu, LOWORD(wParam), tzTemp, _NumOf(tzTemp), MF_BYCOMMAND); OnFileOpen(tzTemp + 4); return; } switch (LOWORD(wParam)) { case IDM_File_Open: OnFileOpen((PTSTR) lParam); break; case IDM_File_Exit: PostMessage(m_hWnd, WM_CLOSE, 0, 0); break; case IDM_View_Toolbar: case IDM_View_StatusBar: case IDM_View_AlwaysOnTop: case IDM_View_MinToTray: case IDM_View_ShowSplash: case IDM_View_ShowOpen: case IDM_View_PlayOnOpen: // 查看选项 OnViewMenu(LOWORD(wParam), FALSE); break; case IDM_View_AssociateFile: GetModuleFileName(NULL, tzPath, MAX_PATH); wsprintf(tzTemp, TEXT("\"%s\" \"%%1\""), tzPath); dwSize = _NumOf(tzPath); SHGetValue(HKEY_CLASSES_ROOT, STR_AppName TEXT("\\shell\\open\\command"), NULL, NULL, tzPath, &dwSize); if (lstrcmpi(tzTemp, tzPath) == 0) { SHDeleteKey(HKEY_CLASSES_ROOT, STR_AppName); for (p = STR_ExtList; *p; p += lstrlen(p) + 1) { SHDeleteKey(HKEY_CLASSES_ROOT, p); } } else { SHSetValue(HKEY_CLASSES_ROOT, STR_AppName TEXT("\\shell\\open\\command"), NULL, REG_SZ, tzTemp, _StrSize(tzTemp)); GetModuleFileName(NULL, tzPath, MAX_PATH); wsprintf(tzTemp, TEXT("\"%s\",1"), tzPath); SHSetValue(HKEY_CLASSES_ROOT, STR_AppName TEXT("\\DefaultIcon"), NULL, REG_SZ, tzTemp, _StrSize(tzTemp)); for (p = STR_ExtList; *p; p += lstrlen(p) + 1) { SHSetValue(HKEY_CLASSES_ROOT, p, NULL, REG_SZ, STR_AppName, sizeof(STR_AppName)); } } break; case IDM_Window_Cascade: SendMessage(CClientWnd::m_hWnd, WM_MDICASCADE, 0, 0); return; case IDM_Window_TitleHorz: SendMessage(CClientWnd::m_hWnd, WM_MDITILE, MDITILE_HORIZONTAL, 0); break; case IDM_Window_TitleVert: SendMessage(CClientWnd::m_hWnd, WM_MDITILE, MDITILE_VERTICAL, 0); break; case IDM_Window_ArrangeIcons: SendMessage(CClientWnd::m_hWnd, WM_MDIICONARRANGE, 0, 0); break; case IDM_Window_CloseAll: CClientWnd::CloseAll(); break; case IDM_Help_Content: // 查看帮助内容 GetModuleFileName(NULL, tzTemp, MAX_PATH); lstrcpy(_StrEnd(tzTemp) - _LenOf(EXT_Chm), EXT_Chm); if (ShellExecute(NULL, NULL, tzTemp, NULL, NULL, SW_SHOW) <= (HINSTANCE) 32) { ErrorBox(ERR_HelpErr); } break; case IDM_Help_Desktop: case IDM_Help_StartMenu: case IDM_Help_ProgramMenu: case IDM_Help_QuickLaunch: case IDM_Help_VisualStudio: // 创建或删除快捷方式 OnHelpShortcut(LOWORD(wParam)); break; case IDM_Help_About: // 显示关于对话框 CAboutDlg::Show(m_hWnd); break; case IDC_TrayIcon: // 系统托盘消息 if ((lParam == WM_LBUTTONUP) || (lParam == WM_RBUTTONUP)) { OnTrayIcon(FALSE); } break; default: pWnd = CClientWnd::GetChildWnd(); _ExIf(pWnd, pWnd->OnCommand(wParam, lParam)); } }