123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722 |
- // 这段 MFC 示例源代码演示如何使用 MFC Microsoft Office Fluent 用户界面
- // (“Fluent UI”)。该示例仅供参考,
- // 用以补充《Microsoft 基础类参考》和
- // MFC C++ 库软件随附的相关电子文档。
- // 复制、使用或分发 Fluent UI 的许可条款是单独提供的。
- // 若要了解有关 Fluent UI 许可计划的详细信息,请访问
- // https://go.microsoft.com/fwlink/?LinkId=238214.
- //
- // 版权所有(C) Microsoft Corporation
- // 保留所有权利。
- // MainFrm.cpp: CMainFrame 类的实现
- //
- #include "stdafx.h"
- #include "framework.h"
- #include "SATHelper.h"
- #include "MainFrm.h"
- #include "DlgLogin.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- CMainFrame* g_pMainFrame = NULL;
- #if USE_TRAYICON
- #define WM_MY_TRAY_NOTIFICATION WM_USER + 108
- const UINT WM_TASKBARCREATED = ::RegisterWindowMessage(_T("UB530"));
- #endif
- // CMainFrame
- IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWndEx)
- BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
- ON_WM_CREATE()
- ON_COMMAND(ID_WINDOW_MANAGER, &CMainFrame::OnWindowManager)
- ON_COMMAND_RANGE(ID_VIEW_APPLOOK_WIN_2000, ID_VIEW_APPLOOK_WINDOWS_7, &CMainFrame::OnApplicationLook)
- ON_UPDATE_COMMAND_UI_RANGE(ID_VIEW_APPLOOK_WIN_2000, ID_VIEW_APPLOOK_WINDOWS_7, &CMainFrame::OnUpdateApplicationLook)
- ON_COMMAND(ID_VIEW_CAPTION_BAR, &CMainFrame::OnViewCaptionBar)
- ON_UPDATE_COMMAND_UI(ID_VIEW_CAPTION_BAR, &CMainFrame::OnUpdateViewCaptionBar)
- ON_COMMAND(ID_TOOLS_OPTIONS, &CMainFrame::OnOptions)
- ON_WM_SETTINGCHANGE()
- #if USE_TRAYICON
- ON_MESSAGE(WM_MY_TRAY_NOTIFICATION, OnTrayNotification)
- ON_REGISTERED_MESSAGE(WM_TASKBARCREATED, OnTaskBarCreated)
- #endif
- ON_COMMAND(ID_TRAYMENU_EXIT, &CMainFrame::OnTraymenuExit)
- ON_MESSAGE(MSG_STATUS_BAR, &CMainFrame::OnMsgStatusBar)
- ON_REGISTERED_MESSAGE(AFX_WM_ON_CHANGE_RIBBON_CATEGORY, &CMainFrame::OnRibbonChanged)
- ON_WM_CLOSE()
- ON_WM_DEVICECHANGE()
- // 全步骤截图;
- ON_COMMAND(ID_CHECK_FULL_CUT, &CMainFrame::OnCheckFullCut)
- ON_UPDATE_COMMAND_UI(ID_CHECK_FULL_CUT, &CMainFrame::OnUpdateCheckFullCut)
- // 有声按钮;
- ON_COMMAND(BTN_HAD_SOUND, &CMainFrame::OnHadSound)
- ON_UPDATE_COMMAND_UI(BTN_HAD_SOUND, &CMainFrame::OnUpdateHadSound)
- // 声音默认按钮;
- ON_COMMAND(BTN_DEF_SOUND, &CMainFrame::OnDefSound)
- ON_UPDATE_COMMAND_UI(BTN_DEF_SOUND, &CMainFrame::OnUpdateDefSound)
- // 声音等级编辑框;
- // OCR账号下拉框;
- ON_COMMAND(ID_COMBOX_OCR, &CMainFrame::OnComboxOcr)
- ON_UPDATE_COMMAND_UI(ID_COMBOX_OCR, &CMainFrame::OnUpdateComboxOcr)
- // MenuTree项目下拉框;
- ON_COMMAND(ID_COMBO_PRODUCT, &CMainFrame::OnComboProduct)
- ON_UPDATE_COMMAND_UI(ID_COMBO_PRODUCT, &CMainFrame::OnUpdateComboProduct)
- // MenuTree UI下拉框;
- ON_COMMAND(ID_COMBO_UI, &CMainFrame::OnComboUi)
- ON_UPDATE_COMMAND_UI(ID_COMBO_UI, &CMainFrame::OnUpdateComboUi)
- // MenuTree 子UI下拉框;
- ON_COMMAND(ID_COMBO_SUBUI, &CMainFrame::OnComboSubUi)
- ON_UPDATE_COMMAND_UI(ID_COMBO_SUBUI, &CMainFrame::OnUpdateComboSubUi)
- // 信号仪1下拉框;
- ON_COMMAND(ID_COMBO1_22293, &CMainFrame::OnCombo1_22293)
- ON_UPDATE_COMMAND_UI(ID_COMBO1_22293, &CMainFrame::OnUpdateCombo1_22293)
- // 信号仪2下拉框;
- ON_COMMAND(ID_COMBO2_22293, &CMainFrame::OnCombo2_22293)
- ON_UPDATE_COMMAND_UI(ID_COMBO2_22293, &CMainFrame::OnUpdateCombo2_22293)
- // 信号仪1CheckBox;
- ON_COMMAND(ID_CHECK1_22293, &CMainFrame::OnCheck1_22293)
- ON_UPDATE_COMMAND_UI(ID_CHECK1_22293, &CMainFrame::OnUpdateCheck1_22293)
- // 信号仪2CheckBox;
- ON_COMMAND(ID_CHECK2_22293, &CMainFrame::OnCheck2_22293)
- ON_UPDATE_COMMAND_UI(ID_CHECK2_22293, &CMainFrame::OnUpdateCheck2_22293)
- //////////////////////////////////////////////////////////////////////////
- ON_COMMAND(ID_COMBO_TVPORT, &CMainFrame::OnCombo2Tv)
- ON_UPDATE_COMMAND_UI(ID_COMBO_TVPORT, &CMainFrame::OnUpdateCombo2Tv)
- ON_COMMAND(ID_CHECK_WATCHTV, &CMainFrame::OnCheckWatchtv)
- ON_UPDATE_COMMAND_UI(ID_CHECK_WATCHTV, &CMainFrame::OnUpdateCheckWatchtv)
- ON_COMMAND(ID_TRAYMENU_LOGIN, &CMainFrame::OnTraymenuLogin)
- ON_COMMAND(ID_CHECK_ENABLETW, &CMainFrame::OnCheckEnabletw)
- ON_UPDATE_COMMAND_UI(ID_CHECK_ENABLETW, &CMainFrame::OnUpdateCheckEnabletw)
- ON_COMMAND(ID_COMBO_TWPORT, &CMainFrame::OnComboTwport)
- ON_UPDATE_COMMAND_UI(ID_COMBO_TWPORT, &CMainFrame::OnUpdateComboTwport)
- END_MESSAGE_MAP()
- // CMainFrame 构造/析构
- CMainFrame::CMainFrame() noexcept :m_trayIcon(IDR_MAINFRAME)
- {
- // TODO: 在此添加成员初始化代码
- theApp.m_nAppLook = theApp.GetInt(_T("ApplicationLook"), ID_VIEW_APPLOOK_VS_2008);
- #if USE_TRAYICON
- m_isNotify = TRUE;
- m_bNoticeTray = TRUE;
- #endif
- m_pDoc = NULL;
- m_pActiveView = NULL;
- for ( int i = 0; i < 10; i++ )
- {
- m_pViewIDE[i] = NULL;
- }
- m_bShotIR = FALSE;
- m_pUB530View = m_pDeviceView = NULL;
- ReadBaiduCfg(m_bdcfg);
- ReadRsRunCfg(m_rscfg);
- ReadTreePath();
- }
- CMainFrame::~CMainFrame()
- {
- }
- #if USE_TRAYICON
- void CMainFrame::InitTrayIcon()
- {
- m_trayIcon.SetNotificationWnd(this, WM_MY_TRAY_NOTIFICATION);
- m_trayIcon.SetIcon(IDR_MAINFRAME, _T("UB530"));
- m_trayIcon.SetIconInfos(IDR_MAINFRAME, IDR_MAINFRAME, IDR_MAINFRAME);
- m_trayIcon.SetDefaultTip(_T("UB530"));
- }
- LRESULT CMainFrame::OnTaskBarCreated(WPARAM wp, LPARAM lp)
- {
- Shell_NotifyIcon(NIM_ADD, &m_trayIcon.m_nid);
- return 0;
- }
- // Handle notification from tray icon: display a message.
- LRESULT CMainFrame::OnTrayNotification(WPARAM uID, LPARAM lEvent)
- {
- if (m_isNotify)
- {
- static LPCSTR MouseMessages[] = { "WM_MOUSEMOVE",
- "WM_LBUTTONDOWN", "WM_LBUTTONUP", "WM_LBUTTONDBLCLK",
- "WM_RBUTTONDOWN", "WM_RBUTTONUP", "WM_RBUTTONDBLCLK",
- "WM_MBUTTONDOWN", "WM_MBUTTONUP", "WM_MBUTTONDBLCLK" };
- }
- if (uID != IDR_MAINFRAME)
- return m_trayIcon.OnTrayNotification(uID, lEvent);
- switch (lEvent)
- {
- case WM_RBUTTONUP:
- TrayRight();
- break;
- case WM_LBUTTONUP:
- break;
- case WM_LBUTTONDBLCLK:
- TaskNotifyIcon();
- break;
- default:
- break;
- }
- return 0;
- }
- void CMainFrame::TrayRight()
- {
- CMenu menu;
- if (!menu.LoadMenu(IDR_MAINFRAME))
- return;
- CMenu* pSubMenu = menu.GetSubMenu(3);
- if (!pSubMenu)
- return;
- CPoint point;
- GetCursorPos(&point);
- ::SetForegroundWindow(m_hWnd);
- pSubMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
- }
- void CMainFrame::TaskNotifyIcon()
- {
- if (!m_bNoticeTray)
- {
- m_trayIcon.SetIcon(IDR_MAINFRAME, _T("UB530采集程序"));
- ShowWindow(SW_SHOWNORMAL);
- m_bNoticeTray = TRUE;
- }
- else
- {
- m_trayIcon.SetIcon(IDR_MAINFRAME, _T("UB530采集程序"));
- ShowWindow(SW_HIDE);
- m_bNoticeTray = FALSE;
- }
- }
- #endif
- int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CMDIFrameWndEx::OnCreate(lpCreateStruct) == -1)
- return -1;
- g_pMainFrame = this;
- #if USE_TRAYICON
- InitTrayIcon();
- #endif
- BOOL bNameValid;
- #if __TAB_BAR__
- CMDITabInfo mdiTabParams;
- mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE; // 其他可用样式...
- mdiTabParams.m_bActiveTabCloseButton = TRUE; // 设置为 FALSE 会将关闭按钮放置在选项卡区域的右侧
- mdiTabParams.m_bTabIcons = FALSE; // 设置为 TRUE 将在 MDI 选项卡上启用文档图标
- mdiTabParams.m_bAutoColor = TRUE; // 设置为 FALSE 将禁用 MDI 选项卡的自动着色
- mdiTabParams.m_bDocumentMenu = TRUE; // 在选项卡区域的右边缘启用文档菜单
- EnableMDITabbedGroups(TRUE, mdiTabParams);
- #endif
- m_wndRibbonBar.Create(this);
- m_wndRibbonBar.LoadFromResource(IDR_RIBBON);
- #if !__QUICKACCESS_COMMAND__
- // 添加以下代码段,禁用快速启动栏;
- CMFCRibbonQuickAccessToolBar* pQAToolbar = m_wndRibbonBar.GetQuickAccessToolbar();
- pQAToolbar->RemoveAll();
- #endif
- if (!m_wndStatusBar.Create(this))
- {
- TRACE0("未能创建状态栏\n");
- return -1; // 未能创建
- }
- CString strTitlePane1;
- CString strTitlePane2;
- bNameValid = strTitlePane1.LoadString(IDS_STATUS_PANE1);
- ASSERT(bNameValid);
- bNameValid = strTitlePane2.LoadString(IDS_STATUS_PANE2);
- ASSERT(bNameValid);
- m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1, strTitlePane1, TRUE), strTitlePane1);
- m_wndStatusBar.AddExtendedElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE2, strTitlePane2, TRUE), strTitlePane2);
- // 启用 Visual Studio 2005 样式停靠窗口行为
- CDockingManager::SetDockingMode(DT_SMART);
- // 启用 Visual Studio 2005 样式停靠窗口自动隐藏行为
- EnableAutoHidePanes(CBRS_ALIGN_ANY);
- #if __OUTLOOKBAR__
- // 导航窗格将创建在左侧,因此将暂时禁用左侧的停靠:
- EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM | CBRS_ALIGN_RIGHT);
- // 创建并设置“Outlook”导航栏:
- if (!CreateOutlookBar(m_wndNavigationBar, ID_VIEW_NAVIGATION, m_wndTree, m_wndCalendar, 250))
- {
- TRACE0("未能创建导航窗格\n");
- return -1; // 未能创建
- }
- #endif
- #if __CAPTIONBAR__
- // 创建标题栏:
- if (!CreateCaptionBar())
- {
- TRACE0("未能创建标题栏\n");
- return -1; // 未能创建
- }
- #endif
- #if __OUTLOOKBAR__
- // 已创建 Outlook 栏,应允许在左侧停靠。
- EnableDocking(CBRS_ALIGN_LEFT);
- EnableAutoHidePanes(CBRS_ALIGN_RIGHT);
- #endif
- // 加载菜单项图像(不在任何标准工具栏上):
- CMFCToolBar::AddToolBarForImageCollection(IDR_MENU_IMAGES, theApp.m_bHiColorIcons ? IDB_MENU_IMAGES_24 : 0);
- #if __DOCKINGBAR__
- // 创建停靠窗口
- if (!CreateDockingWindows())
- {
- TRACE0("未能创建停靠窗口\n");
- return -1;
- }
- #if __FC_WIN__
- m_wndFileView.EnableDocking(CBRS_ALIGN_ANY);
- m_wndClassView.EnableDocking(CBRS_ALIGN_ANY);
- DockPane(&m_wndFileView);
- CDockablePane* pTabbedBar = nullptr;
- m_wndClassView.AttachToTabWnd(&m_wndFileView, DM_SHOW, TRUE, &pTabbedBar);
- #endif
- #if __OUT_PUT_WIN__
- m_wndOutput.EnableDocking(CBRS_ALIGN_ANY);
- DockPane(&m_wndOutput);
- #endif
- m_wndIRControl.EnableDocking(CBRS_ALIGN_ANY);
- DockPane(&m_wndIRControl);
- m_wndDevices.EnableDocking(CBRS_ALIGN_ANY);
- CDockablePane* pTabbedBar = nullptr;
- m_wndDevices.AttachToTabWnd(&m_wndIRControl, DM_SHOW, TRUE, &pTabbedBar);
- #endif
- // 基于持久值设置视觉管理器和样式
- OnApplicationLook(theApp.m_nAppLook);
- // 启用增强的窗口管理对话框
- EnableWindowsDialog(ID_WINDOW_MANAGER, ID_WINDOW_MANAGER, TRUE);
- #if __TAB_BAR__
- // 将文档名和应用程序名称在窗口标题栏上的顺序进行交换。这
- // 将改进任务栏的可用性,因为显示的文档名带有缩略图。
- ModifyStyle(0, FWS_PREFIXTITLE);
- #endif
- #if _USE_DLGVIEW_ // 第一个视图;
- CCreateContext context;
- m_pUB530View = new CChildFrame();
- context.m_pLastView = NULL;
- context.m_pCurrentFrame = this;
- context.m_pCurrentDoc = m_pDoc;
- context.m_pNewViewClass = RUNTIME_CLASS(CUB530View);
- context.m_pNewDocTemplate = m_pDoc->GetDocTemplate();
- if (m_pUB530View->LoadFrame(DLG_UB530VIEW, WS_MAXIMIZE | WS_CHILDWINDOW, this, &context))
- {
- //m_pUB530View->ShowWindow(SW_SHOWMAXIMIZED);
- m_pUB530View->InitialUpdateFrame(context.m_pCurrentDoc, FALSE);
- //m_pUB530View->MDIActivate();
- }
- #else
- CCreateContext context;
- m_pUB530View = new CChildFrame();
- context.m_pLastView = NULL;
- context.m_pCurrentFrame = this;
- context.m_pCurrentDoc = m_pDoc;
- context.m_pNewViewClass = RUNTIME_CLASS(CSATHelperView);
- context.m_pNewDocTemplate = m_pDoc->GetDocTemplate();
- if (m_pUB530View->LoadFrame(1100, WS_MAXIMIZE | WS_OVERLAPPEDWINDOW /*WS_CHILDWINDOW*/, this, &context))
- {
- //m_pUB530View->ShowWindow(SW_SHOWMAXIMIZED);
- m_pUB530View->InitialUpdateFrame(context.m_pCurrentDoc, TRUE);
- //m_pUB530View->MDIActivate();
- }
- #endif
- #if 0 // 第二个视图;
- CCreateContext context2;
- m_pDeviceView = new CChildFrame();
- context2.m_pLastView = NULL;
- context2.m_pCurrentFrame = this;
- context2.m_pCurrentDoc = m_pDoc;
- context2.m_pNewViewClass = RUNTIME_CLASS(CDeviceView);
- context2.m_pNewDocTemplate = m_pDoc->GetDocTemplate();
- // 说明:DLG_DEVICEMANAGER对话框的Style属性必须设置成Child才能LoadFrame成功;
- if (m_pDeviceView->LoadFrame(DLG_DEVICEMANAGER, WS_MAXIMIZE | WS_CHILDWINDOW, this, &context2))
- {
- //m_pDeviceView->ShowWindow(SW_SHOWMAXIMIZED);
- m_pDeviceView->InitialUpdateFrame(NULL, FALSE);
- m_pDeviceView->MDIActivate();
- }
- #endif
- m_pUB530View->MDIActivate();
- m_pUB530View->ShowWindow(SW_SHOWMAXIMIZED);
- InitDevicePanel();
- SetWindowText(_T("SATHelper 版本4.39.003"));
- return 0;
- }
- BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
- {
- if( !CMDIFrameWndEx::PreCreateWindow(cs) )
- return FALSE;
- // TODO: 在此处通过修改
- // CREATESTRUCT cs 来修改窗口类或样式
- //不把子框架标题添加到主框架标题(主框架中就不会再处理WM_SETTEXT消息)
- cs.style &= ~FWS_ADDTOTITLE;
- return TRUE;
- }
- #if __DOCKINGBAR__
- BOOL CMainFrame::CreateDockingWindows()
- {
- #if __FC_WIN__
- // 创建类视图
- CString strClassView;
- bNameValid = strClassView.LoadString(IDS_CLASS_VIEW);
- ASSERT(bNameValid);
- if (!m_wndClassView.Create(strClassView, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_CLASSVIEW, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
- {
- TRACE0("未能创建“类视图”窗口\n");
- return FALSE; // 未能创建
- }
- // 创建文件视图
- CString strFileView;
- bNameValid = strFileView.LoadString(IDS_FILE_VIEW);
- ASSERT(bNameValid);
- if (!m_wndFileView.Create(strFileView, this, CRect(0, 0, 200, 200), TRUE, ID_VIEW_FILEVIEW, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT| CBRS_FLOAT_MULTI))
- {
- TRACE0("未能创建“文件视图”窗口\n");
- return FALSE; // 未能创建
- }
- #endif
- #if __OUT_PUT_WIN__
- // 创建输出窗口
- CString strOutputWnd;
- bNameValid = strOutputWnd.LoadString(IDS_OUTPUT_WND);
- ASSERT(bNameValid);
- if (!m_wndOutput.Create(strOutputWnd, this, CRect(0, 0, 100, 100), TRUE, ID_VIEW_OUTPUTWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_BOTTOM | CBRS_FLOAT_MULTI))
- {
- TRACE0("未能创建输出窗口\n");
- return FALSE; // 未能创建
- }
- #endif
- // 创建遥控器窗口
- CString strPropertiesWnd = _T("遥控器");
- if (!m_wndIRControl.Create(strPropertiesWnd, this, CRect(0, 0, 230, 200), TRUE, ID_VIEW_PROPERTIESWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))
- {
- TRACE0("未能创建“遥控器”窗口\n");
- return FALSE; // 未能创建
- }
- // 创建设备管理窗口
- CString strDevicesWnd = _T("执行器");
- if (!m_wndDevices.Create(strDevicesWnd, this, CRect(0, 0, 230, 200), TRUE, ID_VIEW_OUTPUTWND, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_RIGHT | CBRS_FLOAT_MULTI))
- {
- TRACE0("未能创建“执行器”窗口\n");
- return FALSE; // 未能创建
- }
- SetDockingWindowIcons(theApp.m_bHiColorIcons);
- return TRUE;
- }
- void CMainFrame::SetDockingWindowIcons(BOOL bHiColorIcons)
- {
- #if __FC_WIN__
- HICON hFileViewIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_FILE_VIEW_HC : IDI_FILE_VIEW), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
- m_wndFileView.SetIcon(hFileViewIcon, FALSE);
- HICON hClassViewIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_CLASS_VIEW_HC : IDI_CLASS_VIEW), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
- m_wndClassView.SetIcon(hClassViewIcon, FALSE);
- #endif
- #if __OUT_PUT_WIN__
- HICON hOutputBarIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_OUTPUT_WND_HC : IDI_OUTPUT_WND), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
- m_wndOutput.SetIcon(hOutputBarIcon, FALSE);
- #endif
- HICON hPropertiesBarIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_PROPERTIES_WND_HC : IDI_PROPERTIES_WND), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
- m_wndIRControl.SetIcon(hPropertiesBarIcon, FALSE);
- HICON hOutputBarIcon = (HICON) ::LoadImage(::AfxGetResourceHandle(), MAKEINTRESOURCE(bHiColorIcons ? IDI_OUTPUT_WND_HC : IDI_OUTPUT_WND), IMAGE_ICON, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON), 0);
- m_wndDevices.SetIcon(hOutputBarIcon, FALSE);
- #if __TAB_BAR__
- UpdateMDITabbedBarsIcons();
- #endif
- }
- #endif
- #if __OUTLOOKBAR__
- BOOL CMainFrame::CreateOutlookBar(CMFCOutlookBar& bar, UINT uiID, CMFCShellTreeCtrl& tree, CCalendarBar& calendar, int nInitialWidth)
- {
- bar.SetMode2003();
- BOOL bNameValid;
- CString strTemp;
- bNameValid = strTemp.LoadString(IDS_SHORTCUTS);
- ASSERT(bNameValid);
- if (!bar.Create(strTemp, this, CRect(0, 0, nInitialWidth, 32000), uiID, WS_CHILD | WS_VISIBLE | CBRS_LEFT))
- {
- return FALSE; // 未能创建
- }
- CMFCOutlookBarTabCtrl* pOutlookBar = (CMFCOutlookBarTabCtrl*)bar.GetUnderlyingWindow();
- if (pOutlookBar == nullptr)
- {
- ASSERT(FALSE);
- return FALSE;
- }
- pOutlookBar->EnableInPlaceEdit(TRUE);
- static UINT uiPageID = 1;
- // 可浮动,可自动隐藏,可调整大小,但不能关闭
- DWORD dwStyle = AFX_CBRS_FLOAT | AFX_CBRS_AUTOHIDE | AFX_CBRS_RESIZE;
- CRect rectDummy(0, 0, 0, 0);
- const DWORD dwTreeStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS;
- tree.Create(dwTreeStyle, rectDummy, &bar, 1200);
- bNameValid = strTemp.LoadString(IDS_FOLDERS);
- ASSERT(bNameValid);
- pOutlookBar->AddControl(&tree, strTemp, 2, TRUE, dwStyle);
- calendar.Create(rectDummy, &bar, 1201);
- bNameValid = strTemp.LoadString(IDS_CALENDAR);
- ASSERT(bNameValid);
- pOutlookBar->AddControl(&calendar, strTemp, 3, TRUE, dwStyle);
- bar.SetPaneStyle(bar.GetPaneStyle() | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
- pOutlookBar->SetImageList(theApp.m_bHiColorIcons ? IDB_PAGES_HC : IDB_PAGES, 24);
- pOutlookBar->SetToolbarImageList(theApp.m_bHiColorIcons ? IDB_PAGES_SMALL_HC : IDB_PAGES_SMALL, 16);
- pOutlookBar->RecalcLayout();
- BOOL bAnimation = theApp.GetInt(_T("OutlookAnimation"), TRUE);
- CMFCOutlookBarTabCtrl::EnableAnimation(bAnimation);
- bar.SetButtonsFont(&afxGlobalData.fontBold);
- return TRUE;
- }
- #endif
- #if __CAPTIONBAR__
- BOOL CMainFrame::CreateCaptionBar()
- {
- if (!m_wndCaptionBar.Create(WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS, this, ID_VIEW_CAPTION_BAR, -1, TRUE))
- {
- TRACE0("未能创建标题栏\n");
- return FALSE;
- }
- BOOL bNameValid;
- CString strTemp, strTemp2;
- bNameValid = strTemp.LoadString(IDS_CAPTION_BUTTON);
- ASSERT(bNameValid);
- m_wndCaptionBar.SetButton(strTemp, ID_TOOLS_OPTIONS, CMFCCaptionBar::ALIGN_LEFT, FALSE);
- bNameValid = strTemp.LoadString(IDS_CAPTION_BUTTON_TIP);
- ASSERT(bNameValid);
- m_wndCaptionBar.SetButtonToolTip(strTemp);
- bNameValid = strTemp.LoadString(IDS_CAPTION_TEXT);
- ASSERT(bNameValid);
- m_wndCaptionBar.SetText(strTemp, CMFCCaptionBar::ALIGN_LEFT);
- m_wndCaptionBar.SetBitmap(IDB_INFO, RGB(255, 255, 255), FALSE, CMFCCaptionBar::ALIGN_LEFT);
- bNameValid = strTemp.LoadString(IDS_CAPTION_IMAGE_TIP);
- ASSERT(bNameValid);
- bNameValid = strTemp2.LoadString(IDS_CAPTION_IMAGE_TEXT);
- ASSERT(bNameValid);
- m_wndCaptionBar.SetImageToolTip(strTemp, strTemp2);
- return TRUE;
- }
- #endif
- // CMainFrame 诊断
- #ifdef _DEBUG
- void CMainFrame::AssertValid() const
- {
- CMDIFrameWndEx::AssertValid();
- }
- void CMainFrame::Dump(CDumpContext& dc) const
- {
- CMDIFrameWndEx::Dump(dc);
- }
- #endif //_DEBUG
- // CMainFrame 消息处理程序
- void CMainFrame::OnWindowManager()
- {
- ShowWindowsDialog();
- }
- void CMainFrame::OnApplicationLook(UINT id)
- {
- CWaitCursor wait;
- theApp.m_nAppLook = id;
- switch (theApp.m_nAppLook)
- {
- case ID_VIEW_APPLOOK_WIN_2000:
- CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManager));
- m_wndRibbonBar.SetWindows7Look(FALSE);
- break;
- case ID_VIEW_APPLOOK_OFF_XP:
- CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOfficeXP));
- m_wndRibbonBar.SetWindows7Look(FALSE);
- break;
- case ID_VIEW_APPLOOK_WIN_XP:
- CMFCVisualManagerWindows::m_b3DTabsXPTheme = TRUE;
- CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows));
- m_wndRibbonBar.SetWindows7Look(FALSE);
- break;
- case ID_VIEW_APPLOOK_OFF_2003:
- CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2003));
- CDockingManager::SetDockingMode(DT_SMART);
- m_wndRibbonBar.SetWindows7Look(FALSE);
- break;
- case ID_VIEW_APPLOOK_VS_2005:
- CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerVS2005));
- CDockingManager::SetDockingMode(DT_SMART);
- m_wndRibbonBar.SetWindows7Look(FALSE);
- break;
- case ID_VIEW_APPLOOK_VS_2008:
- CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerVS2008));
- CDockingManager::SetDockingMode(DT_SMART);
- m_wndRibbonBar.SetWindows7Look(FALSE);
- break;
- case ID_VIEW_APPLOOK_WINDOWS_7:
- CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows7));
- CDockingManager::SetDockingMode(DT_SMART);
- m_wndRibbonBar.SetWindows7Look(TRUE);
- break;
- default:
- switch (theApp.m_nAppLook)
- {
- case ID_VIEW_APPLOOK_OFF_2007_BLUE:
- CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_LunaBlue);
- break;
- case ID_VIEW_APPLOOK_OFF_2007_BLACK:
- CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_ObsidianBlack);
- break;
- case ID_VIEW_APPLOOK_OFF_2007_SILVER:
- CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Silver);
- break;
- case ID_VIEW_APPLOOK_OFF_2007_AQUA:
- CMFCVisualManagerOffice2007::SetStyle(CMFCVisualManagerOffice2007::Office2007_Aqua);
- break;
- }
- CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerOffice2007));
- CDockingManager::SetDockingMode(DT_SMART);
- m_wndRibbonBar.SetWindows7Look(FALSE);
- }
- #if __DOCKINGBAR__
- #if __OUT_PUT_WIN__
- m_wndOutput.UpdateFonts();
- #endif
- #endif
- RedrawWindow(nullptr, nullptr, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_FRAME | RDW_ERASE);
- theApp.WriteInt(_T("ApplicationLook"), theApp.m_nAppLook);
- }
- void CMainFrame::OnUpdateApplicationLook(CCmdUI* pCmdUI)
- {
- pCmdUI->SetRadio(theApp.m_nAppLook == pCmdUI->m_nID);
- }
- void CMainFrame::OnViewCaptionBar()
- {
- #if __CAPTIONBAR__
- m_wndCaptionBar.ShowWindow(m_wndCaptionBar.IsVisible() ? SW_HIDE : SW_SHOW);
- RecalcLayout(FALSE);
- #endif
- }
- void CMainFrame::OnUpdateViewCaptionBar(CCmdUI* pCmdUI)
- {
- #if __CAPTIONBAR__
- pCmdUI->SetCheck(m_wndCaptionBar.IsVisible());
- #endif
- }
- void CMainFrame::OnOptions()
- {
- CMFCRibbonCustomizeDialog *pOptionsDlg = new CMFCRibbonCustomizeDialog(this, &m_wndRibbonBar);
- ASSERT(pOptionsDlg != nullptr);
- pOptionsDlg->DoModal();
- delete pOptionsDlg;
- }
- void CMainFrame::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
- {
- CMDIFrameWndEx::OnSettingChange(uFlags, lpszSection);
- #if __DOCKINGBAR__
- #if __OUT_PUT_WIN__
- m_wndOutput.UpdateFonts();
- #endif
- #endif
- }
- LRESULT CMainFrame::OnMsgStatusBar(WPARAM wParam, LPARAM lParam)
- {
- CString strMSG = *(CString*)wParam;
- int uId = lParam;
- SetRibbonStatusBarText(strMSG, uId);
- return LRESULT();
- }
- void CMainFrame::OnTraymenuExit()
- {
- // TODO: 在此添加命令处理程序代码
- //GetActiveView();
- CFrameWnd::OnClose();
- }
- void CMainFrame::OnClose()
- {
- // TODO: 在此添加消息处理程序代码和/或调用默认值
- #ifndef _DEBUG
- ShowWindow(SW_HIDE);
- m_bNoticeTray = FALSE;
- #else
- CFrameWnd::OnClose();
- #endif
- }
- BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
- {
- // TODO: 在此添加专用代码和/或调用基类
- static BOOL bTopWnd = FALSE;
- if (pMsg->message == WM_KEYDOWN)
- {
- if (pMsg->wParam == VK_F3)
- {
- if (bTopWnd == FALSE)
- {
- SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);//窗口置顶
- SetWindowText(_T("SATHelper 版本4.39.003 视频采集卡 - 前置窗口(请按F3取消或开启前置)"));
- }
- else
- {
- SetWindowPos(&wndNoTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);//取消窗口置顶
- SetWindowText(_T("SATHelper 版本4.39.003 视频采集卡-取消前置(请按F3取消或开启前置)"));
- }
- bTopWnd = !bTopWnd;
- // 必须退出,否则执行2次;
- return TRUE;
- }
- }
- return CMDIFrameWndEx::PreTranslateMessage(pMsg);
- }
- LRESULT CMainFrame::OnRibbonChanged(WPARAM wParam, LPARAM lParam)
- {
- CMFCRibbonCategory* pCategory = m_wndRibbonBar.GetActiveCategory();
- int nCategory = m_wndRibbonBar.GetCategoryIndex(pCategory);
- if (nCategory == 1)
- {
- if (m_pUB530View)
- {
- m_pUB530View->MDIActivate();
- m_pUB530View->ShowWindow(SW_SHOWMAXIMIZED);
- }
- }
- else if (nCategory == 2)
- {
- if (m_pDeviceView)
- {
- m_pDeviceView->MDIActivate();
- m_pDeviceView->ShowWindow(SW_SHOWMAXIMIZED);
- }
- }
- return LRESULT();
- }
- void CMainFrame::ReadBaiduCfg(BaiduCfg& bdcfg)
- {
- TCHAR szValue[MAX_PATH] = { 0 };
- TCHAR szBuffer[1024] = { 0 };
- _stprintf_s(m_szBaiduCfgPath, _T("%s%s"), Global::g_szPython27Dir, _T("Lib\\site-packages\\ssat_sdk\\config\\baidu_run.cfg"));
- GetPrivateProfileString(_T("CurStatus"), _T("Cur_Count"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
- bdcfg.cur_count = szValue;
- GetPrivateProfileString(_T("CurStatus"), _T("Reset_Time"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
- bdcfg.reset_time = szValue;
- // 读取所有Section值;
- DWORD dwLen = GetPrivateProfileString(NULL, NULL, NULL, szBuffer, 1024, m_szBaiduCfgPath);
- for (int i = 0, j = 0; i < dwLen; i++)
- {
- if (szBuffer[i] == '\0')
- {
- TCHAR szData[MAX_PATH] = { 0 };
- memcpy(szData, &szBuffer[j], i - j);
- if (_tcsicmp(szData, _T("CurStatus")))
- {
- CountInfo countInfo;
- GetPrivateProfileString(szData, _T("APP_ID"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
- countInfo.app_id = szValue;
- GetPrivateProfileString(szData, _T("API_KEY"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
- countInfo.api_key = szValue;
- GetPrivateProfileString(szData, _T("SECRET_KEY"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
- countInfo.secret_key = szValue;
- GetPrivateProfileString(szData, _T("Ret_Count"), NULL, szValue, MAX_PATH, m_szBaiduCfgPath);
- countInfo.ret_count = szValue;
- bdcfg.list_count.insert(std::pair<std::string, CountInfo>(szData, countInfo));
- }
- OutputDebugString(szData);
- OutputDebugString("\n");
- j = i + 1;
- }
- }
- }
- void CMainFrame::ReadRsRunCfg(RsRunCfg& rscfg)
- {
- TCHAR szValue[MAX_PATH] = { 0 };
- TCHAR szBuffer[1024] = { 0 };
- _stprintf_s(m_szRsCfgPath, _T("%s%s"), Global::g_szPython27Dir, _T("Lib\\site-packages\\ssat_sdk\\config\\resource_run.cfg"));
- GetPrivateProfileString(_T("Sound"), _T("sound_list"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.sound_list = szValue;
- int pos1(0), pos2(0);
- pos1 = rscfg.sound_list.find_first_of('[');
- pos2 = rscfg.sound_list.find_first_of(',');
- if (pos1 != std::string::npos && pos2 != std::string::npos)
- {
- rscfg.sound1 = rscfg.sound_list.substr(pos1 + 1, pos2 - pos1 - 1);
- rscfg.sound2 = rscfg.sound_list.substr(pos2 + 1, rscfg.sound_list.length() - pos2 - 2);
- }
-
- GetPrivateProfileString(_T("COMM"), _T("issendkeytakepicture_tester"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.full_cut = szValue;
- GetPrivateProfileString(_T("COMM"), _T("tg39_port"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.tg39_port = szValue;
- GetPrivateProfileString(_T("COMM"), _T("serial_communicator_port"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.tv_port = szValue;
- GetPrivateProfileString(_T("COMM"), _T("sat_home"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.sat_home = szValue;
- GetPrivateProfileString(_T("COMM"), _T("sat_result_dir"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.sat_result_dir = szValue;
- GetPrivateProfileString(_T("COMM"), _T("chroma22293"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.chroma22293 = szValue;
- //...
- GetPrivateProfileString(_T("MenuTree"), _T("menutreeselectedchip"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.menutree_chip = szValue;
- GetPrivateProfileString(_T("MenuTree"), _T("menutreeselectedstyle"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.menutree_style = szValue;
- GetPrivateProfileString(_T("MenuTree"), _T("menutreeselectedchannel"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.menutree_channel = szValue;
- // SATHelper
- GetPrivateProfileString(_T("SATHelper"), _T("chroma1"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.chroma1 = szValue;
- GetPrivateProfileString(_T("SATHelper"), _T("chroma2"), NULL, szValue, MAX_PATH, m_szRsCfgPath);
- rscfg.chroma2 = szValue;
- rscfg.bWatchTV = GetPrivateProfileInt(_T("Abnormal"), _T("Watch"), 0, m_szRsCfgPath);
- }
- void CMainFrame::ReadTreePath()
- {
- // 必须在ReadRsRunCfg之后调用;
- TCHAR szRootDir[MAX_PATH] = { 0 };
- _stprintf_s(szRootDir, _T("%s%s"), m_rscfg.sat_home.c_str(), _T("resource\\MenuTree\\"));
- auto _get_dir = [](std::string dir) {
- int nIndex = dir.find_last_of('\\');
- if (nIndex != std::string::npos)
- {
- return dir.substr(nIndex + 1);
- }
- return dir;
- };
- auto _get_name = [](std::string dir) {
- int pos1 = dir.find_last_of('\\');
- if (pos1 != std::string::npos)
- {
- dir = dir.substr(pos1 + 1);
- int pos2 = dir.find_last_of('.');
- if (pos2 != std::string::npos)
- {
- dir = dir.substr(0, pos2);
- int pos3 = dir.find("MenuTree_");
- if (pos3 != std::string::npos)
- {
- return dir.substr(strlen("MenuTree_"));
- }
- }
- }
- return std::string();
- };
- // 查找根目录下的目录;
- filehelper fh;
- STR_VEC vt_dir;
- fh.getsubfolder(szRootDir, &vt_dir);
- for (auto it : vt_dir)
- {
- STR_VEC vt_subdir;
- std::vector<UITree> vtTree;
- fh.getsubfolder(it.c_str(), &vt_subdir);
- for (auto ui : vt_subdir)
- {
- // 查找xls文件;
- UITree uitree;
- uitree.ui = ui;
- fh.getfiles_findout_subfolder(ui.c_str(), _T("*.xls"), &uitree.vtSubUI);
- vtTree.push_back(uitree);
- }
- m_map_tree.insert(std::pair<std::string, std::vector<UITree>>(_get_dir(it), vtTree));
- }
- // 去除目录级;
- for (std::map<std::string, std::vector<UITree>>::iterator it = m_map_tree.begin(); it != m_map_tree.end(); it++)
- {
- for (std::vector<UITree>::iterator ui = it->second.begin(); ui != it->second.end(); ui++)
- {
- ui->ui = _get_dir(ui->ui);
- for (std::vector<std::string>::iterator xls = ui->vtSubUI.begin(); xls != ui->vtSubUI.end();)
- {
- *xls = _get_name(xls->c_str());
- if (xls->size() == 0)
- {
- xls = ui->vtSubUI.erase(xls);
- }
- else
- {
- xls++;
- }
- }
- }
- }
- }
- void CMainFrame::ParseJson()
- {
- if (m_rscfg.chroma1.size() == 0)
- {
- cJSON* pJson = cJSON_Parse(m_rscfg.chroma22293.c_str());
- if (pJson)
- {
- cJSON* pArray = cJSON_GetObjectItem(pJson, "devices");
- if (pArray)
- {
- int nCount = cJSON_GetArraySize(pArray);
- for (int i = 0; i < nCount; i++)
- {
- cJSON* pItem = cJSON_GetArrayItem(pArray, i);
- if (pItem)
- {
- if (i == 0)
- m_rscfg.chroma1 = cJSON_GetObjectItem(pItem, "port") ? cJSON_GetObjectItem(pItem, "port")->valuestring : _T("");
- if (i == 1)
- m_rscfg.chroma2 = cJSON_GetObjectItem(pItem, "port") ? cJSON_GetObjectItem(pItem, "port")->valuestring : _T("");
- }
- }
- }
- }
- // 保存;
- WritePrivateProfileString(_T("SATHelper"), _T("chroma1"), m_rscfg.chroma1.c_str(), m_szRsCfgPath);
- WritePrivateProfileString(_T("SATHelper"), _T("chroma2"), m_rscfg.chroma2.c_str(), m_szRsCfgPath);
- }
- }
- void CMainFrame::RunDevice()
- {
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonButton* pCheck1 = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK1_22293));
- CMFCRibbonButton* pCheck2 = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK2_22293));
- if (m_rscfg.chroma1.size())
- {
- CDevice* pdev = new CDevice();
- pdev->m_iBaudrate = 115200;
- pdev->m_iDatabit = 8;
- pdev->m_iPort = atoi(m_rscfg.chroma1.substr(3).c_str());
- pdev->m_iParitybit = 0;
- pdev->m_iStopbit = 0;
- pdev->m_iID = 1;
- pdev->m_strDeviceName = "Chroma22293";
- pdev->m_iDeviceType = 1;
- if (pdev->Open())
- {
- g_dmap.insert(std::pair<int, CDevice*>(pdev->m_iID, pdev));
- }
- else
- {
- delete pdev;
- }
- }
- if (m_rscfg.chroma2.size())
- {
- CDevice* pdev = new CDevice();
- pdev->m_iBaudrate = 115200;
- pdev->m_iDatabit = 8;
- pdev->m_iPort = atoi(m_rscfg.chroma2.substr(3).c_str());
- pdev->m_iParitybit = 0;
- pdev->m_iStopbit = 0;
- pdev->m_iID = 2;
- pdev->m_strDeviceName = "Chroma22293";
- pdev->m_iDeviceType = 1;
- if (pdev->Open())
- {
- g_dmap.insert(std::pair<int, CDevice*>(pdev->m_iID, pdev));
- }
- else
- {
- delete pdev;
- }
- }
- UpdateData(FALSE);
- }
- void CMainFrame::InitCombobox_port()
- {
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pCommbox1 = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO1_22293));
- CMFCRibbonComboBox* pCommbox2 = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO2_22293));
- CMFCRibbonComboBox* pCommboxTV = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_TVPORT));
- CMFCRibbonComboBox* pCommboxTW = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_TWPORT));
- for (std::vector<std::string>::iterator it = m_vtCOM.begin(); it != m_vtCOM.end(); it++)
- {
- if (!IsPortInserted(pCommbox1, it->c_str()))
- pCommbox1->AddItem(it->c_str());
- if (!IsPortInserted(pCommbox2, it->c_str()))
- pCommbox2->AddItem(it->c_str());
- if (!IsPortInserted(pCommboxTV, it->c_str()))
- pCommboxTV->AddItem(it->c_str());
- if (!IsPortInserted(pCommboxTW, it->c_str()))
- pCommboxTW->AddItem(it->c_str());
- }
- if (m_rscfg.chroma1.size())
- pCommbox1->SelectItem(m_rscfg.chroma1.c_str());
- if (m_rscfg.chroma2.size())
- pCommbox2->SelectItem(m_rscfg.chroma2.c_str());
- if (m_rscfg.tv_port.size())
- pCommboxTV->SelectItem(m_rscfg.tv_port.c_str());
- if (Global::g_Config.twPort)
- {
- TCHAR szCom[16] = {0};
- _stprintf_s(szCom, _T("COM%d"), Global::g_Config.twPort);
- pCommboxTW->SelectItem(szCom);
- }
- }
- BOOL CMainFrame::IsPortInserted(CMFCRibbonComboBox* pCommbox, LPCTSTR lpPort)
- {
- int nCount = pCommbox->GetCount();
- for (int i = 0; i < nCount; i++ )
- {
- if (_tcsicmp(pCommbox->GetItem(i), lpPort) == 0)
- return TRUE;
- }
- return FALSE;
- }
- BOOL CMainFrame::OnDeviceChange(UINT nEventType, DWORD_PTR dwData)
- {
- switch (nEventType)
- {
- // 串口拨掉;
- case DBT_DEVICEREMOVECOMPLETE:
- break;
- // 串口插入;
- case DBT_DEVICEARRIVAL:
- {
- Global::GetSysSerialPort(m_vtCOM);
- InitCombobox_port();
- }
- break;
- default:
- break;
- }
- return TRUE;
- }
- void CMainFrame::InitDevicePanel()
- {
- ParseJson();
- // Ribbon Combobox添加默认项;
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pOcrCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBOX_OCR));
- if (pOcrCombo)
- {
- for (auto it : m_bdcfg.list_count)
- {
- pOcrCombo->AddItem(it.first.c_str());
- }
- // 选择默认项;
- pOcrCombo->SetEditText(m_bdcfg.cur_count.c_str());
- }
- // 剩余次数;
- CMFCRibbonEdit* pOcrCount = DYNAMIC_DOWNCAST(CMFCRibbonEdit, pRibbon->FindByID(ID_EDIT_COUNT));
- if (pOcrCount)
- {
- pOcrCount->SetEditText(m_bdcfg.reset_time.c_str());
- }
- // 声音等级;
- CMFCRibbonEdit* pSoundLevel = DYNAMIC_DOWNCAST(CMFCRibbonEdit, pRibbon->FindByID(ID_EDIT_SOUND_LEVEL));
- if (pSoundLevel)
- {
- pSoundLevel->SetEditText(m_rscfg.sound1.c_str());
- }
- // 全步骤截图;
- // CMFCRibbonCheckBox* pCheckFullCut = DYNAMIC_DOWNCAST(CMFCRibbonCheckBox, pRibbon->FindByID(ID_CHECK_FULL_CUT));
- // if (pCheckFullCut)
- // {
- // pCheckFullCut->SetCheck();
- // }
- // MenuTree;
- CMFCRibbonComboBox* pChipCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_PRODUCT));
- if (pChipCombo && m_map_tree.size())
- {
- for (auto it : m_map_tree)
- {
- pChipCombo->AddItem(it.first.c_str());
- }
- // 选择默认项;
- pChipCombo->SetEditText(m_rscfg.menutree_chip.c_str());
- // UI下拉框;
- CString curText = pChipCombo->GetEditText();
- CMFCRibbonComboBox* pStyleCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_UI));
- std::map<std::string, std::vector<UITree>>::iterator itTree = m_map_tree.find(curText.GetString());
- if (itTree != m_map_tree.end())
- {
- for ( auto it : itTree->second )
- {
- pStyleCombo->AddItem(it.ui.c_str());
- }
- }
- pStyleCombo->SetEditText(m_rscfg.menutree_style.c_str());
- CString strCurChip = pChipCombo->GetEditText();
- CString strCurStyle = pStyleCombo->GetEditText();
- _stprintf_s(m_szCurMenuTreeDir, _T("%s%s%s\\%s\\"), m_rscfg.sat_home.c_str(), _T("resource\\MenuTree\\"), strCurChip.GetString(), strCurStyle.GetString());
- }
- // if (Global::g_Config.enableTW)
- // TW::OpenDevice(Global::g_Config.twPort, 115200, 8, 0, 0);
- // 启动设备;
- Global::GetSysSerialPort(m_vtCOM);
- InitCombobox_port();
- RunDevice();
- }
- void CMainFrame::OnCheckFullCut()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonButton* pFullCutCheck = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK_FULL_CUT));
- if (pFullCutCheck)
- {
- WritePrivateProfileString(_T("COMM"), _T("issendkeytakepicture_tester"), !pFullCutCheck->IsChecked() ? _T("True") : _T("False"), m_szRsCfgPath);
- m_rscfg.full_cut = !pFullCutCheck->IsChecked() ? _T("True") : _T("False");
- }
- }
- void CMainFrame::OnUpdateCheckFullCut(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- pCmdUI->SetCheck(!_tcsicmp(m_rscfg.full_cut.c_str(), _T("True")));
- }
- void CMainFrame::OnHadSound()
- {
- // TODO: 在此添加命令处理程序代码
- std::thread t([&]() {
- // 强制stdion, stdout和stderr完全无缓冲:python -u
- TCHAR szCommandLine[MAX_PATH] = { 0 };
- _stprintf_s(szCommandLine, _T("python -W ignore \"%s%s\" >>%ssound_log.txt"), Global::g_szPython27Dir, _T("Lib\\site-packages\\ssat_sdk\\sound_init.py"), Global::g_szCurModuleDir);
- WinExec(szCommandLine, SW_HIDE);
- OutputDebugString(szCommandLine);
- // 等待10秒;
- Sleep(30000);
- ReadRsRunCfg(m_rscfg);
- // Ribbon Combobox添加默认项;
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- CMFCRibbonEdit* pSoundLevel = DYNAMIC_DOWNCAST(CMFCRibbonEdit, pRibbon->FindByID(ID_EDIT_SOUND_LEVEL));
- if (pSoundLevel)
- {
- pSoundLevel->SetEditText(m_rscfg.sound1.c_str());
- }
- });
- t.detach();
-
- }
- void CMainFrame::OnUpdateHadSound(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- }
- void CMainFrame::OnDefSound()
- {
- // TODO: 在此添加命令处理程序代码
- TCHAR szValue[MAX_PATH] = { 0 };
- TCHAR szBuffer[1024] = { 0 };
- _stprintf_s(m_szRsCfgPath, _T("%s%s"), Global::g_szPython27Dir, _T("Lib\\site-packages\\ssat_sdk\\config\\resource_run.cfg"));
- WritePrivateProfileString(_T("Sound"), _T("sound_list"), _T("[2000,2000]"), m_szRsCfgPath);
- // Ribbon Combobox添加默认项;
- m_rscfg.sound1 = _T("2000");
- m_rscfg.sound2 = _T("2000");
- m_rscfg.sound_list = _T("[2000,2000]");
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- CMFCRibbonEdit* pSoundLevel = DYNAMIC_DOWNCAST(CMFCRibbonEdit, pRibbon->FindByID(ID_EDIT_SOUND_LEVEL));
- if (pSoundLevel)
- {
- pSoundLevel->SetEditText(m_rscfg.sound1.c_str());
- }
-
- }
- void CMainFrame::OnUpdateDefSound(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- }
- void CMainFrame::OnComboxOcr()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pOcrCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBOX_OCR));
- if (pOcrCombo)
- {
- // 获取当前文本项;
- CString strOcr = pOcrCombo->GetEditText();
- WritePrivateProfileString(_T("CurStatus"), _T("Cur_Count"), strOcr, m_szBaiduCfgPath);
- }
- }
- void CMainFrame::OnUpdateComboxOcr(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- }
- void CMainFrame::OnComboProduct()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pChipCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_PRODUCT));
- if (pChipCombo)
- {
- // UI下拉框;
- CString curText = pChipCombo->GetEditText();
- CMFCRibbonComboBox* pStyleCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_UI));
- pStyleCombo->RemoveAllItems();
- for (auto it : m_map_tree.find(curText.GetString())->second)
- {
- pStyleCombo->AddItem(it.ui.c_str());
- }
- pStyleCombo->SelectItem(0);
- // SUBUI下拉框;
- CString strUIName = pStyleCombo->GetEditText();
- CMFCRibbonComboBox* pSubUICombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_SUBUI));
- pSubUICombo->RemoveAllItems();
- std::vector<UITree>& ui = m_map_tree.find(curText.GetString())->second;
- for (std::vector<UITree>::iterator it = ui.begin(); it != ui.end(); it++)
- {
- if (_tcsicmp(strUIName.GetString(), it->ui.c_str()) == 0)
- {
- if (it->vtSubUI.size() == 0)
- break;
- for (auto SubUI : it->vtSubUI)
- {
- pSubUICombo->AddItem(SubUI.c_str());
- }
- pSubUICombo->SelectItem(0);
- }
- }
- // 保存结果;
- CString strCurChip = pChipCombo->GetEditText();
- WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedchip"), strCurChip, m_szRsCfgPath);
- CString strCurStyle = pStyleCombo->GetEditText();
- WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedstyle"), strCurStyle, m_szRsCfgPath);
- CString strSubStyle = pSubUICombo->GetEditText();
- WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedchannel"), strSubStyle, m_szRsCfgPath);
- _stprintf_s(m_szCurMenuTreeDir, _T("%s%s%s\\%s\\"), m_rscfg.sat_home.c_str(), _T("resource\\MenuTree\\"), strCurChip.GetString(), strCurStyle.GetString());
- }
- }
- void CMainFrame::OnUpdateComboProduct(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- }
- void CMainFrame::OnComboUi()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pStyleCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_UI));
- if (pStyleCombo)
- {
- CMFCRibbonComboBox* pChipCombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_PRODUCT));
- // UI下拉框;
- CString strCurChip = pChipCombo->GetEditText();
- // SUBUI下拉框;
- CString strUIName = pStyleCombo->GetEditText();
- CMFCRibbonComboBox* pSubUICombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_SUBUI));
- pSubUICombo->RemoveAllItems();
- std::vector<UITree>& ui = m_map_tree.find(strCurChip.GetString())->second;
- for (std::vector<UITree>::iterator it = ui.begin(); it != ui.end(); it++)
- {
- if (_tcsicmp(strUIName.GetString(), it->ui.c_str()) == 0)
- {
- if (it->vtSubUI.size() == 0)
- break;
- for (auto SubUI : it->vtSubUI)
- {
- pSubUICombo->AddItem(SubUI.c_str());
- }
- pSubUICombo->SelectItem(0);
- }
- }
- // UI下拉框;
- CString strCurStyle = pStyleCombo->GetEditText();
- WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedstyle"), strCurStyle, m_szRsCfgPath);
- CString strSubStyle = pSubUICombo->GetEditText();
- WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedchannel"), strSubStyle, m_szRsCfgPath);
- _stprintf_s(m_szCurMenuTreeDir, _T("%s%s%s\\%s\\"), m_rscfg.sat_home.c_str(), _T("resource\\MenuTree\\"), strCurChip.GetString(), strCurStyle.GetString());
- }
- }
- void CMainFrame::OnUpdateComboUi(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- }
- void CMainFrame::OnComboSubUi()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pSubUICombo = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_SUBUI));
- if (pSubUICombo)
- {
- // UI下拉框;
- CString strSubStyle = pSubUICombo->GetEditText();
- WritePrivateProfileString(_T("MenuTree"), _T("menutreeselectedchannel"), strSubStyle, m_szRsCfgPath);
- }
- }
- void CMainFrame::OnUpdateComboSubUi(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- }
- void CMainFrame::OnCombo1_22293()
- {
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pCombobx1 = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO1_22293));
- // 保存到配置文件中;
- int nCurSel = pCombobx1->GetCurSel();
- if (nCurSel != CB_ERR)
- {
- CString strChroma1 = pCombobx1->GetEditText();
- WritePrivateProfileString(_T("SATHelper"), _T("chroma1"), strChroma1, m_szRsCfgPath);
- m_rscfg.chroma1 = strChroma1.GetString();
- if (g_dmap.find(1) == g_dmap.end())
- {
- CDevice* pdev = new CDevice();
- pdev->m_iBaudrate = 115200;
- pdev->m_iDatabit = 8;
- pdev->m_iPort = atoi(m_rscfg.chroma1.substr(3).c_str());
- pdev->m_iParitybit = 0;
- pdev->m_iStopbit = 1;
- pdev->m_iID = 1;
- pdev->m_strDeviceName = "Chroma22293";
- pdev->m_iDeviceType = 1;
- if (pdev->Open())
- {
- g_dmap.insert(std::pair<int, CDevice*>(pdev->m_iID, pdev));
- }
- else
- {
- delete pdev;
- }
- }
- else
- {
- CDevice* pDev = g_dmap.find(1)->second;
- int port = atoi(strChroma1.Right(1).GetString());
- if (pDev->m_iPort != port)
- {
- pDev->m_iPort = port;
- pDev->Close();
- pDev->Open();
- }
- }
- }
- }
- void CMainFrame::OnUpdateCombo1_22293(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
-
- }
- void CMainFrame::OnCombo2_22293()
- {
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pCombobx2 = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO2_22293));
- // 保存到配置文件中;
- int nCurSel = pCombobx2->GetCurSel();
- if (nCurSel != CB_ERR)
- {
- CString strChroma2 = pCombobx2->GetEditText();
- WritePrivateProfileString(_T("SATHelper"), _T("chroma2"), strChroma2, m_szRsCfgPath);
- m_rscfg.chroma2 = strChroma2.GetString();
- if (g_dmap.find(2) == g_dmap.end())
- {
- CDevice* pdev = new CDevice();
- pdev->m_iBaudrate = 115200;
- pdev->m_iDatabit = 8;
- pdev->m_iPort = atoi(m_rscfg.chroma2.substr(3).c_str());
- pdev->m_iParitybit = 0;
- pdev->m_iStopbit = 1;
- pdev->m_iID = 2;
- pdev->m_strDeviceName = "Chroma22293";
- pdev->m_iDeviceType = 1;
- if (pdev->Open())
- {
- g_dmap.insert(std::pair<int, CDevice*>(pdev->m_iID, pdev));
- }
- else
- {
- delete pdev;
- }
- }
- else
- {
- CDevice* pDev = g_dmap.find(2)->second;
- int port = atoi(strChroma2.Right(1).GetString());
- if (pDev->m_iPort != port)
- {
- pDev->m_iPort = port;
- pDev->Close();
- pDev->Open();
- }
- }
- }
- }
- void CMainFrame::OnUpdateCombo2_22293(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
-
- }
- void CMainFrame::OnCheck1_22293()
- {
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonButton* pCheck1 = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK1_22293));
-
- // TODO: 在此添加命令处理程序代码
- if (g_dmap.find(1) != g_dmap.end())
- {
- if (pCheck1->IsChecked())
- {
- g_dmap.find(1)->second->Close();
- }
- else
- {
- g_dmap.find(1)->second->Open();
- }
- }
- }
- void CMainFrame::OnUpdateCheck1_22293(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- if (g_dmap.find(1) != g_dmap.end())
- pCmdUI->SetCheck(g_dmap.find(1)->second->IsOpen());
- else
- pCmdUI->SetCheck(FALSE);
- }
- void CMainFrame::OnCheck2_22293()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonButton* pCheck2 = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK2_22293));
- // TODO: 在此添加命令处理程序代码
- if (g_dmap.find(2) != g_dmap.end())
- {
- if (pCheck2->IsChecked())
- {
- g_dmap.find(2)->second->Close();
- }
- else
- {
- g_dmap.find(2)->second->Open();
- }
- }
- }
- void CMainFrame::OnUpdateCheck2_22293(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- if (g_dmap.find(2) != g_dmap.end())
- pCmdUI->SetCheck(g_dmap.find(2)->second->IsOpen());
- else
- pCmdUI->SetCheck(FALSE);
- }
- void CMainFrame::OnCombo2Tv()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pCombobxTV = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_TVPORT));
- // 保存到配置文件中;
- int nCurSel = pCombobxTV->GetCurSel();
- if (nCurSel != CB_ERR)
- {
- CString strTVPort = pCombobxTV->GetEditText();
- WritePrivateProfileString(_T("COMM"), _T("serial_communicator_port"), strTVPort, m_szRsCfgPath);
- m_rscfg.tv_port = strTVPort.GetString();
- }
- }
- void CMainFrame::OnUpdateCombo2Tv(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- }
- void CMainFrame::OnCheckWatchtv()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonButton* pCheckWatchTV = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK_WATCHTV));
- m_rscfg.bWatchTV = !pCheckWatchTV->IsChecked();
- WritePrivateProfileString(_T("Abnormal"), _T("Watch"), m_rscfg.bWatchTV ? _T("1") : _T("0"), m_szRsCfgPath);
- }
- void CMainFrame::OnUpdateCheckWatchtv(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- pCmdUI->SetCheck(m_rscfg.bWatchTV);
- }
- void CMainFrame::OnCheckEnabletw()
- {
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonButton* pCheckEnableTW = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK_ENABLETW));
- Global::g_Config.enableTW = !pCheckEnableTW->IsChecked();
- WritePrivateProfileString(_T("SATHelper"), _T("enableTW"), Global::g_Config.enableTW ? _T("1") : _T("0"), Global::g_szConfig);
- // 同时写入resource_run.cfg中:[devices].[rcudevice_selected]
- WritePrivateProfileString(_T("devices"), _T("rcudevice_selected"), Global::g_Config.enableTW ? _T("tw") : _T("redrat4"), m_szRsCfgPath);
- if (Global::g_Config.enableTW)
- TW::OpenDevice(Global::g_Config.twPort, 115200, 8, 0, 0);
- else
- TW::CloseDevice();
-
- m_wndIRControl.LoadSignals();
- m_wndIRControl.ReLoadSignalXml();
- }
- void CMainFrame::OnUpdateCheckEnabletw(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- pCmdUI->SetCheck(Global::g_Config.enableTW);
- }
- void CMainFrame::OnComboTwport()
- {
- // TODO: 在此添加命令处理程序代码
- // TODO: 在此添加命令处理程序代码
- CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
- ASSERT_VALID(pRibbon);
- CMFCRibbonComboBox* pCombobxTW = DYNAMIC_DOWNCAST(CMFCRibbonComboBox, pRibbon->FindByID(ID_COMBO_TWPORT));
- // 保存到配置文件中;
- int nCurSel = pCombobxTW->GetCurSel();
- if (nCurSel != CB_ERR)
- {
- CString strTWPort = pCombobxTW->GetEditText();
- Global::g_Config.twPort = _ttol(strTWPort.Mid(3).GetString());
- WritePrivateProfileString(_T("TestWizard"), _T("Com"), strTWPort.Mid(3).GetString(), Global::g_szConfig);
- if (Global::g_Config.enableTW) {
- TW::CloseDevice();
- TW::OpenDevice(Global::g_Config.twPort, 115200, 8, 0, 0);
- }
- }
- }
- void CMainFrame::OnUpdateComboTwport(CCmdUI* pCmdUI)
- {
- // TODO: 在此添加命令更新用户界面处理程序代码
- }
- void CMainFrame::OnTraymenuLogin()
- {
- // TODO: 在此添加命令处理程序代码
- CDlgLogin dlg;
- if ( dlg.DoModal() )
- {
- }
- }
|