소스 검색

手动创建视图;

scbc.sat2 5 년 전
부모
커밋
1c1a0b78e8

+ 21 - 0
SATHelper/SATHelper/MainFrm.cpp

@@ -46,6 +46,8 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
 #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()
 END_MESSAGE_MAP()
 
 // CMainFrame 构造/析构
@@ -645,3 +647,22 @@ BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
 
 	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)
+	{
+		AfxMessageBox(_T("视频Ribbon"));
+	}
+	else if (nCategory == 2)
+	{
+		AfxMessageBox(_T("设备管理Ribbon"));
+		CView *pView = ((CFrameWnd*)(AfxGetApp()->m_pMainWnd))->GetActiveFrame()->GetActiveView();
+		//pView->ShowWindow(SW_HIDE);
+		//CDeviceView view;
+	}
+
+	return LRESULT();
+}

+ 4 - 0
SATHelper/SATHelper/MainFrm.h

@@ -154,7 +154,11 @@ public:
 			}
 		}
 	}
+
+public:
 	virtual BOOL PreTranslateMessage(MSG* pMsg);
+	//afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
+	afx_msg LRESULT OnRibbonChanged(WPARAM wParam, LPARAM lParam);
 };
 
 

+ 26 - 1
SATHelper/SATHelper/SATHelper.cpp

@@ -35,7 +35,7 @@
 BEGIN_MESSAGE_MAP(CSATHelperApp, CWinAppEx)
 	ON_COMMAND(ID_APP_ABOUT, &CSATHelperApp::OnAppAbout)
 	// 基于文件的标准文档命令
-	ON_COMMAND(ID_FILE_NEW, &CWinAppEx::OnFileNew)
+	ON_COMMAND(ID_FILE_NEW, &CSATHelperApp::OnFileNew)
 	ON_COMMAND(ID_FILE_OPEN, &CWinAppEx::OnFileOpen)
 	// 标准打印设置命令
 	ON_COMMAND(ID_FILE_PRINT_SETUP, &CWinAppEx::OnFilePrintSetup)
@@ -65,6 +65,12 @@ CSATHelperApp::CSATHelperApp() noexcept
 	// 将所有重要的初始化放置在 InitInstance 中
 }
 
+void CSATHelperApp::OnFileNew()
+{
+	if (m_pDocManager != NULL)
+		m_pDocManager->OnFileNew();
+	
+}
 // 唯一的 CSATHelperApp 对象
 
 CSATHelperApp theApp;
@@ -194,6 +200,9 @@ BOOL CSATHelperApp::InitInstance()
 
 	// 分析标准 shell 命令、DDE、打开文件操作的命令行
 	CCommandLineInfo cmdInfo;
+#if !_AUTO_NEW_FILE_
+	cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;
+#endif
 	ParseCommandLine(cmdInfo);
 
 
@@ -205,6 +214,22 @@ BOOL CSATHelperApp::InitInstance()
 	// 主窗口已初始化,因此显示它并对其进行更新
 	pMainFrame->ShowWindow(m_nCmdShow);
 	pMainFrame->UpdateWindow();
+	
+#if 1
+	CCreateContext context;
+	CChildFrame* pChildFrame = new CChildFrame();	
+	context.m_pCurrentDoc = pDocTemplate->CreateNewDocument();
+	context.m_pNewDocTemplate = pDocTemplate;
+	context.m_pLastView = NULL;
+	context.m_pNewViewClass = RUNTIME_CLASS(CSATHelperView);
+	//pDocTemplate->CreateNewFrame(context.m_pCurrentDoc, NULL);
+	if (pChildFrame->LoadFrame(100, WS_MAXIMIZE | WS_CHILDWINDOW, pMainFrame, &context))
+	{
+		pChildFrame->ShowWindow(SW_SHOWMAXIMIZED);
+		pChildFrame->InitialUpdateFrame(context.m_pCurrentDoc, TRUE);
+		pChildFrame->MDIActivate();
+	}
+#endif
 
 	return TRUE;
 }

+ 1 - 1
SATHelper/SATHelper/SATHelper.h

@@ -43,7 +43,7 @@ public:
 	virtual void PreLoadState();
 	virtual void LoadCustomState();
 	virtual void SaveCustomState();
-
+	afx_msg void OnFileNew();
 	afx_msg void OnAppAbout();
 	DECLARE_MESSAGE_MAP()
 };

+ 0 - 4
SATHelper/SATHelper/SATHelperView.cpp

@@ -1060,11 +1060,7 @@ void CSATHelperView::OnStartRecord()
 	int msc = tp.time_since_epoch().count() % 1000;
 
 	_stprintf_s(szPath, _T("%s%04d%02d%02d%02d%02d%02d%03d"),
-#ifdef _DEBUG
-		_T("D:\\bin\\VideoCapture\\"),
-#else
 		Global::g_szCurModuleDir,
-#endif
 		now.tm_year + 1990,
 		now.tm_mon + 1,
 		now.tm_mday,

BIN
SATHelper/SATHelper/res/SATHelper.ico


파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 0 - 0
SATHelper/SATHelper/res/ribbon.mfcribbon-ms


+ 2 - 0
SATHelper/SATHelper/stdafx.h

@@ -32,6 +32,8 @@ using namespace chrono;
 #define __FC_WIN__ 0
 // Pane使用对话框;
 #define __PANE_DLG__ 0
+// 是否自动创建文档视图;
+#define _AUTO_NEW_FILE_ 0
 
 //////////////////////////////////////////////////////////////////////////
 // START;

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.