|
@@ -64,6 +64,7 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
|
|
|
ON_UPDATE_COMMAND_UI(ID_RIBBON_SWITCHER_CHECKBOXB, &CMainFrame::OnUpdateSwitcherCheckboxB)
|
|
|
// 计时器;
|
|
|
ON_WM_TIMER()
|
|
|
+ ON_WM_CLOSE()
|
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
// CMainFrame 构造/析构
|
|
@@ -77,11 +78,14 @@ CMainFrame::CMainFrame()
|
|
|
m_bFindSwitcherPort = false;
|
|
|
m_bSwitcherCheckA = false;
|
|
|
m_bSwitcherCheckB = false;
|
|
|
+ m_pActiveView = NULL;
|
|
|
+ m_pChildFrame = NULL;
|
|
|
theApp.m_nAppLook = theApp.GetInt(_T("ApplicationLook"), ID_VIEW_APPLOOK_OFF_2007_BLUE);
|
|
|
}
|
|
|
|
|
|
CMainFrame::~CMainFrame()
|
|
|
{
|
|
|
+
|
|
|
}
|
|
|
|
|
|
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
@@ -614,27 +618,47 @@ void CMainFrame::OnCameraCombobox()
|
|
|
int nCurSel = pCameraCombo->GetCurSel();
|
|
|
if ( nCurSel != -1 )
|
|
|
{
|
|
|
+ if ( m_pChildFrame )
|
|
|
+ {
|
|
|
+ CFieldTestToolView *pView = (CFieldTestToolView*)m_pChildFrame->GetActiveView();
|
|
|
+ if ( pView->m_pCamera )
|
|
|
+ delete pView->m_pCamera;
|
|
|
+ pView->m_pCamera = NULL;
|
|
|
+ //pView->GetDocument()->OnCloseDocument();
|
|
|
+
|
|
|
+ //pView->SendMessage(WM_CLOSE, 0, 0);
|
|
|
+ //pView->CloseWindow();
|
|
|
+ //m_pChildFrame->MDIDestroy();
|
|
|
+ m_pChildFrame->CloseWindow();
|
|
|
+ //m_pChildFrame->DestroyWindow();
|
|
|
+ //m_pChildFrame->SendMessage(WM_CLOSE, 0, 0);
|
|
|
+ //delete m_pChildFrame;
|
|
|
+ m_pChildFrame = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
CString strCamera = pCameraCombo->GetItem(nCurSel);
|
|
|
OutputDebugString(strCamera + _T("\r\n"));
|
|
|
|
|
|
CCreateContext context;
|
|
|
- CChildFrame *pChildView = new CChildFrame();
|
|
|
+ m_pChildFrame = new CChildFrame();
|
|
|
context.m_pLastView = NULL;
|
|
|
context.m_pCurrentFrame = this;
|
|
|
context.m_pCurrentDoc = m_pDoc;
|
|
|
context.m_pNewViewClass = RUNTIME_CLASS(CFieldTestToolView);
|
|
|
context.m_pNewDocTemplate = m_pDocTemplate;
|
|
|
|
|
|
- if (pChildView->LoadFrame(IDR_MAINFRAME, WS_MAXIMIZE | WS_CHILDWINDOW, this, &context))
|
|
|
+ if (m_pChildFrame->LoadFrame(IDR_MAINFRAME, WS_MAXIMIZE | WS_CHILDWINDOW, this, &context))
|
|
|
{
|
|
|
- pChildView->MDIActivate();
|
|
|
- pChildView->InitialUpdateFrame(m_pDoc, TRUE);
|
|
|
- pChildView->ShowWindow(SW_SHOWMAXIMIZED);
|
|
|
- CFieldTestToolView *pView = (CFieldTestToolView*)pChildView->GetActiveView();
|
|
|
+ m_pChildFrame->MDIActivate();
|
|
|
+ m_pChildFrame->InitialUpdateFrame(m_pDoc, TRUE);
|
|
|
+ m_pChildFrame->ShowWindow(SW_SHOWMAXIMIZED);
|
|
|
+ CFieldTestToolView *pView = (CFieldTestToolView*)m_pChildFrame->GetActiveView();
|
|
|
+
|
|
|
if ( pView )
|
|
|
- pView->m_pCamera = &m_cap;
|
|
|
- m_cap.Init(1, pChildView->GetSafeHwnd());
|
|
|
+ pView->m_pCamera = new CCaptureVideo();
|
|
|
+ pView->m_pCamera->Init(nCurSel, m_pChildFrame->GetSafeHwnd());
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1163,3 +1187,17 @@ BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
|
|
|
}
|
|
|
return CMDIFrameWndEx::PreTranslateMessage(pMsg);
|
|
|
}
|
|
|
+
|
|
|
+void CMainFrame::OnClose()
|
|
|
+{
|
|
|
+ // TODO: 在此添加消息处理程序代码和/或调用默认值
|
|
|
+ if ( m_pChildFrame )
|
|
|
+ {
|
|
|
+ CFieldTestToolView *pView = (CFieldTestToolView*)m_pChildFrame->GetActiveView();
|
|
|
+ if ( pView->m_pCamera )
|
|
|
+ delete pView->m_pCamera;
|
|
|
+ pView->m_pCamera = NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ CMDIFrameWndEx::OnClose();
|
|
|
+}
|