| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291 |
- /**************************************************************************************************
- 版本所有(C), 2020-2022, 北京普达迪泰
- ***************************************************************************************************
- 文 件 名: DbCamConfigDlg.cpp
- 功能描述: 双相机内参标定
- 版 本 号: 1.00初版
- 作 者: HYF
- 生成日期; 2021-12-20
- 最近修改:
- 函数列表:
- 修改历史:
- 1.日 期 :2021-12-20
- 作 者 : HYF
- 修改内容 : 创建文件
- **************************************************************************************************/
- // DbCamConfigDlg.cpp: 实现文件
- #include "pch.h"
- #include "DMS.h"
- #include "DbCamConfigDlg.h"
- #include "afxdialogex.h"
- #include "IDPMSManager.h"
- // DbCamConfigDlg 对话框
- IMPLEMENT_DYNAMIC(DbCamConfigDlg, CDialogEx)
- DbCamConfigDlg::DbCamConfigDlg(CWnd* pParent /*=nullptr*/)
- : CDialogEx(IDD_DLG_DBCAM_CONFIG, pParent)
- {
- }
- DbCamConfigDlg::DbCamConfigDlg(CWnd* pParent, LPCTSTR szEquipTypeCode, LPCTSTR szEquipCode)
- : CDialogEx(IDD_DLG_DBCAM_CONFIG, pParent)
- , m_szEquipTypeCode(szEquipTypeCode)
- , m_szEquipCode(szEquipCode)
- , m_bIsAttached(FALSE)
- {
- }
- DbCamConfigDlg::~DbCamConfigDlg()
- {
- }
- void DbCamConfigDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_BTN_CAM_CONFIG_STEP1, m_Btn_Step1);
- DDX_Control(pDX, IDC_BTN_CAM_CONFIG_STEP2, m_Btn_Step2);
- }
- BEGIN_MESSAGE_MAP(DbCamConfigDlg, CDialogEx)
- ON_BN_CLICKED(IDC_BTN_CAM_CONFIG_STEP1, &DbCamConfigDlg::OnBnClickedBtnCamConfigStep1)
- ON_BN_CLICKED(IDC_BTN_CAM_CONFIG_STEP2, &DbCamConfigDlg::OnBnClickedBtnCamConfigStep2)
- ON_MESSAGE(WM_START_IDPMS, OnReStartIDPMS)
- ON_MESSAGE(WM_CAM_CONFIG_FAILURE, OnCamConfigFailure)
- ON_MESSAGE(WM_CAM_CONFIG_SUCCESS, OnCamConfigSuccess)
- ON_WM_DESTROY()
- ON_WM_SIZE()
- END_MESSAGE_MAP()
- // DbCamConfigDlg 消息处理程序
- BOOL DbCamConfigDlg::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
- this->ShowWindow(SW_MAXIMIZE);
- AttachIDPMS();
- RelayoutIDPMS();
- m_Btn_Step1.EnableWindow(TRUE);
- m_Btn_Step2.EnableWindow(TRUE);
- return TRUE;
- }
- /**************************************************************************************************
- 函 数 名 :OnBnClickedBtnCamConfigStep1
- 功能描述 :事件处理-双相机标定-建立工程
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void DbCamConfigDlg::OnBnClickedBtnCamConfigStep1()
- {
- // 启动IDPMS多线程模式
- IDPMSManager *pManager = IDPMSManager::GetManager();
- BOOL bRet = pManager->DoubleCameraConfigStep1ProcThread(this, m_szEquipTypeCode, m_szEquipCode);
- m_Btn_Step1.EnableWindow(FALSE);
- m_Btn_Step2.EnableWindow(FALSE);
- }
- /**************************************************************************************************
- 函 数 名 :OnBnClickedBtnCamConfigStep2
- 功能描述 :事件处理-双相机外参标定
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void DbCamConfigDlg::OnBnClickedBtnCamConfigStep2()
- {
- // 启动IDPMS多线程模式
- IDPMSManager *pManager = IDPMSManager::GetManager();
- BOOL bRet = pManager->DoubleCameraConfigStep2ProcThread(this, m_szEquipTypeCode, m_szEquipCode);
- m_Btn_Step1.EnableWindow(FALSE);
- m_Btn_Step2.EnableWindow(FALSE);
- }
- /**************************************************************************************************
- 函 数 名 :OnCamConfigComplete
- 功能描述 :WM_CAM_CONFIG_COMPLETE处理
- 输入参数 :略
- 输出参数 :略
- 返 回 值 :略
- **************************************************************************************************/
- afx_msg LRESULT DbCamConfigDlg::OnCamConfigSuccess(WPARAM wp, LPARAM lp)
- {
- DMSResponse *pMsg = (DMSResponse *)wp;
- CString szMsg;
- if (pMsg != NULL)
- {
- szMsg.Format("%s", pMsg->szMsg);
- Utils::DMS_FreeMsg(pMsg);
- }
- else
- {
- szMsg.Format("%s", _T("执行成功!"));
- }
- GetDlgItem(IDC_STATIC_CAM_RESULT)->SetWindowText(szMsg);
- m_Btn_Step1.EnableWindow(TRUE);
- m_Btn_Step2.EnableWindow(TRUE);
- return 0;
- }
- /**************************************************************************************************
- 函 数 名 :OnCamConfigComplete
- 功能描述 :WM_CAM_CONFIG_COMPLETE处理
- 输入参数 :略
- 输出参数 :略
- 返 回 值 :略
- **************************************************************************************************/
- afx_msg LRESULT DbCamConfigDlg::OnCamConfigFailure(WPARAM wp, LPARAM lp)
- {
- DMSResponse *pMsg = (DMSResponse *)wp;
- CString szMsg;
- if (pMsg != NULL)
- {
- szMsg.Format("%s", pMsg->szMsg);
- Utils::DMS_FreeMsg(pMsg);
- }
- else
- {
- szMsg.Format("%s", _T("执行失败!"));
- }
- GetDlgItem(IDC_STATIC_CAM_RESULT)->SetWindowText(szMsg);
- m_Btn_Step1.EnableWindow(TRUE);
- m_Btn_Step2.EnableWindow(TRUE);
- return 0;
- }
- /**************************************************************************************************
- 函 数 名 :AttachIDPMS
- 功能描述 :附加IDPMS窗口到UI中
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void DbCamConfigDlg::AttachIDPMS()
- {
- // 初始化
- if (g_hIDPMSHWnd)
- {
- ::SetParent(g_hIDPMSHWnd, GetDlgItem(IDC_IDPMS_RECT)->m_hWnd);
- //::SetParent(g_hIDPMSHWnd, this->m_hWnd);
- LONG style = GetWindowLong(g_hIDPMSHWnd, GWL_STYLE);// 14CF 0000
- style &= ~WS_CAPTION;
- style &= ~WS_THICKFRAME;
- //style &= ~WS_MINIMIZEBOX;
- //style &= ~WS_MAXIMIZEBOX;
- //style |= WS_CHILD;
- style |= WS_VISIBLE;
- ::SetWindowLong(g_hIDPMSHWnd, GWL_STYLE, style);//eraze title of ms paint window.
- m_bIsAttached = TRUE;
- }
- }
- /**************************************************************************************************
- 函 数 名 :RelayoutIDPMS
- 功能描述 :调整IDPMS显示位置
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void DbCamConfigDlg::RelayoutIDPMS()
- {
- CRect rect;
- GetDlgItem(IDC_IDPMS_RECT)->GetWindowRect(&rect);
- ScreenToClient(rect);
- CRect rectShow;
- rectShow.left = 0;
- rectShow.top = 0;
- rectShow.right = rect.right - rect.left;
- rectShow.bottom = rect.bottom - rect.top;
- ::MoveWindow(g_hIDPMSHWnd, rectShow.left, rectShow.top, rectShow.right, rectShow.bottom, true);
- ::ShowWindow(g_hIDPMSHWnd, SW_SHOWMAXIMIZED);
- ::SetFocus(g_hIDPMSHWnd);
-
- //
- ::SwitchToThisWindow(g_hIDPMSHWnd, TRUE);
- //::SetWindowPos(g_hIDPMSHWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
- //::SetWindowPos(g_hIDPMSHWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
- ::SetForegroundWindow(g_hIDPMSHWnd);
- ::BringWindowToTop(g_hIDPMSHWnd);
- ::InvalidateRect(g_hIDPMSHWnd, NULL, TRUE);
- ::UpdateWindow(g_hIDPMSHWnd);
- //::SetWindowPos(g_hIDPMSHWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE);
- }
- /**************************************************************************************************
- 函 数 名 :AttachIDPMS
- 功能描述 :附加IDPMS窗口到UI中
- 输入参数 :无
- 输出参数 :无
- 返 回 值 :void
- **************************************************************************************************/
- void DbCamConfigDlg::OnSize(UINT nType, int cx, int cy)
- {
- CDialogEx::OnSize(nType, cx, cy);
- if (m_bIsAttached)
- {
- RelayoutIDPMS();
- }
- }
- /**************************************************************************************************
- 函 数 名 :OnDestroy
- 功能描述 :WM_DESTORY消息处理
- 输入参数 :略
- 输出参数 :略
- 返 回 值 :void
- **************************************************************************************************/
- void DbCamConfigDlg::OnDestroy()
- {
- if (g_hIDPMSHWnd)
- {
- ::SetParent(g_hIDPMSHWnd, NULL);
- ::ShowWindow(g_hIDPMSHWnd, SW_HIDE);
- }
- CDialogEx::OnDestroy();
- }
- /**************************************************************************************************
- 函 数 名 :OnRestartIDPMS
- 功能描述 :WM_RESTART_IDPMS处理
- 输入参数 :略
- 输出参数 :略
- 返 回 值 :略
- **************************************************************************************************/
- afx_msg LRESULT DbCamConfigDlg::OnReStartIDPMS(WPARAM wp, LPARAM lp)
- {
- // 从IDPMS获取数据
- IDPMSManager *pManager = IDPMSManager::GetManager();
- BOOL bRet = pManager->StartIDPMS2();
- if (bRet)
- {
- AttachIDPMS();
- RelayoutIDPMS();
- m_Btn_Step1.EnableWindow(TRUE);
- m_Btn_Step2.EnableWindow(TRUE);
- }
- return 0;
- }
|