| | |
| | | #include "ServoDlg.h" |
| | | #include "afxdialogex.h" |
| | | #include "Common.h" |
| | | #include "Log.h" |
| | | |
| | | |
| | | #ifdef _DEBUG |
| | |
| | | m_crBkgnd = APPDLG_BACKGROUND_COLOR; |
| | | m_hbrBkgnd = nullptr; |
| | | m_bShowLogWnd = FALSE; |
| | | m_pLogDlg = nullptr; |
| | | } |
| | | |
| | | void CServoDlg::DoDataExchange(CDataExchange* pDX) |
| | |
| | | ON_WM_DESTROY() |
| | | ON_BN_CLICKED(IDC_BUTTON_LOG, &CServoDlg::OnBnClickedButtonLog) |
| | | ON_WM_SIZE() |
| | | ON_WM_CLOSE() |
| | | ON_MESSAGE(ID_MSG_LOGDLG_HIDE, &CServoDlg::OnLogDlgHide) |
| | | ON_WM_MOVING() |
| | | ON_WM_MOVE() |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | |
| | | m_pGraph->SetBoxText(INDICATE_MEASUREMENT, "13", "Measurement"); |
| | | |
| | | |
| | | // 调整初始窗口位置 |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | int width = GetSystemMetrics(SM_CXSCREEN); |
| | | int height = GetSystemMetrics(SM_CYSCREEN); |
| | | MoveWindow((width - rcWnd.Width()) / 2, 0, rcWnd.Width(), rcWnd.Height(), TRUE); |
| | | |
| | | |
| | | // model init |
| | | theApp.m_model.init(); |
| | | |
| | | |
| | | UpdateLogBtn(); |
| | | Resize(); |
| | | return TRUE; // 除非将焦点设置到控件,否则返回 TRUE |
| | |
| | | { |
| | | CDialogEx::OnDestroy(); |
| | | |
| | | if (m_pLogDlg != nullptr) { |
| | | m_pLogDlg->DestroyWindow(); |
| | | delete m_pLogDlg; |
| | | m_pLogDlg = nullptr; |
| | | } |
| | | |
| | | if (m_hbrBkgnd != nullptr) { |
| | | ::DeleteObject(m_hbrBkgnd); |
| | | } |
| | |
| | | void CServoDlg::OnBnClickedButtonLog() |
| | | { |
| | | m_bShowLogWnd = !m_bShowLogWnd; |
| | | if (m_pLogDlg == nullptr) { |
| | | m_pLogDlg = new CLogDlg(); |
| | | m_pLogDlg->Create(IDD_DIALOG_LOG, this); |
| | | |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | m_pLogDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), 200); |
| | | } |
| | | ASSERT(m_pLogDlg); |
| | | m_pLogDlg->ShowWindow(m_bShowLogWnd ? SW_SHOW : SW_HIDE); |
| | | LOGE("OnBnClickedButtonLog"); |
| | | |
| | | UpdateLogBtn(); |
| | | } |
| | | |
| | |
| | | m_btnLog.SetBkgndColor(BS_NORMAL, m_bShowLogWnd ? BTN_LOG_BKGND_PRESS : BTN_LOG_BKGND_NORMAL); |
| | | m_btnLog.SetBkgndColor(BS_HOVER, BTN_LOG_BKGND_HOVER); |
| | | m_btnLog.SetBkgndColor(BS_PRESS, BTN_LOG_BKGND_PRESS); |
| | | m_btnLog.Invalidate(); |
| | | } |
| | | |
| | | void CServoDlg::OnSize(UINT nType, int cx, int cy) |
| | |
| | | pItem->GetClientRect(&rcItem); |
| | | pItem->MoveWindow(x, y, rcItem.Width(), rcItem.Height()); |
| | | } |
| | | |
| | | void CServoDlg::OnClose() |
| | | { |
| | | // TODO: 在此添加消息处理程序代码和/或调用默认值 |
| | | |
| | | CDialogEx::OnClose(); |
| | | } |
| | | |
| | | LRESULT CServoDlg::OnLogDlgHide(WPARAM wParam, LPARAM lParam) |
| | | { |
| | | m_bShowLogWnd = FALSE; |
| | | UpdateLogBtn(); |
| | | LOGE("OnLogDlgHide"); |
| | | |
| | | return 0; |
| | | } |
| | | |
| | | void CServoDlg::OnMoving(UINT fwSide, LPRECT pRect) |
| | | { |
| | | CDialogEx::OnMoving(fwSide, pRect); |
| | | } |
| | | |
| | | void CServoDlg::OnMove(int x, int y) |
| | | { |
| | | if (m_pLogDlg != nullptr && !m_pLogDlg->IsZoomed()) { |
| | | CRect rcWnd; |
| | | GetWindowRect(&rcWnd); |
| | | m_pLogDlg->MoveWindow(rcWnd.left, rcWnd.bottom - 8, rcWnd.Width(), 200); |
| | | } |
| | | |
| | | CDialogEx::OnMove(x, y); |
| | | } |