| | |
| | | // CMyStatusbar 消息处理程序 |
| | | |
| | | |
| | | void CMyStatusbar::setBkgnd(COLORREF color) |
| | | void CMyStatusbar::setBackgroundColor(COLORREF color) |
| | | { |
| | | if (m_brBkgnd.GetSafeHandle() != nullptr) { |
| | | m_brBkgnd.DeleteObject(); |
| | | } |
| | | |
| | | m_crBkgnd = color; |
| | | m_brBkgnd.CreateSolidBrush(color); |
| | | m_btnCurTask.SetFaceColor(m_crBkgnd); |
| | | m_btnCurTask.SetFrameColor(m_crBkgnd); |
| | | m_btnCurTask.SetFrameColor(BS_HOVER, CColorTransfer::ApproximateColor(m_crBkgnd, 0.05)); |
| | | m_btnCurTask.SetFrameColor(BS_PRESS, CColorTransfer::ApproximateColor(m_crBkgnd, 0.12)); |
| | | m_btnCurTask.SetBkgndColor(BS_HOVER, CColorTransfer::ApproximateColor(m_crBkgnd, 0.05)); |
| | | m_btnCurTask.SetBkgndColor(BS_PRESS, CColorTransfer::ApproximateColor(m_crBkgnd, 0.12)); |
| | | |
| | | Invalidate(); |
| | | UpdateWindow(); |
| | | } |
| | | |
| | | void CMyStatusbar::setForegroundColor(COLORREF cr) |
| | | { |
| | | m_crForeground = cr; |
| | | m_btnCurTask.SetTextColor(m_crForeground); |
| | | |
| | | Invalidate(); |
| | | UpdateWindow(); |
| | | } |
| | | |
| | |
| | | SetDlgItemText(IDC_LABEL_RUNTIME, pszText); |
| | | } |
| | | |
| | | void CMyStatusbar::setCurTaskBtnText(const char* pszText) |
| | | { |
| | | SetDlgItemText(IDC_BUTTON_ROBOTTASK, pszText); |
| | | } |
| | | |
| | | void CMyStatusbar::setCimBtnText(const char* pszText) |
| | | { |
| | | SetDlgItemText(IDC_BUTTON_CIM, pszText); |
| | | } |
| | | |
| | | void CMyStatusbar::setCurTaskBtnColors(COLORREF face, COLORREF frame, COLORREF text) |
| | | { |
| | | m_btnCurTask.SetFaceColor(face); |
| | | m_btnCurTask.SetFrameColor(frame); |
| | | m_btnCurTask.SetTextColor(text); |
| | | Invalidate(); |
| | | UpdateWindow(); |
| | | } |
| | | |
| | | void CMyStatusbar::setCimBtnColors(COLORREF face, COLORREF frame, COLORREF text) |
| | | { |
| | | m_btnCim.SetFaceColor(face); |
| | | m_btnCim.SetFrameColor(frame); |
| | | m_btnCim.SetTextColor(text); |
| | | Invalidate(); |
| | | UpdateWindow(); |
| | | } |
| | | |
| | | BOOL CMyStatusbar::OnInitDialog() |
| | | { |
| | | CDialogEx::OnInitDialog(); |
| | | |
| | | // TODO: 在此添加额外的初始化 |
| | | |
| | | m_btnCurTask.SubclassDlgItem(IDC_BUTTON_ROBOTTASK, this); |
| | | // m_btnCurTask.SetIcon(hIcon1, hIcon1, 24); |
| | | m_btnCurTask.SetFaceColor(m_crBkgnd); |
| | | m_btnCurTask.SetFrameColor(m_crBkgnd); |
| | | m_btnCurTask.SetFrameColor(BS_HOVER, RGB(218, 218, 218)); |
| | | m_btnCurTask.SetFrameColor(BS_PRESS, RGB(168, 168, 168)); |
| | | m_btnCurTask.SetTextColor(m_crForeground); |
| | | |
| | | m_btnCim.SubclassDlgItem(IDC_BUTTON_CIM, this); |
| | | m_btnCim.SetFaceColor(m_crBkgnd); |
| | | m_btnCim.SetFrameColor(m_crBkgnd); |
| | | m_btnCim.SetFrameColor(BS_HOVER, RGB(218, 218, 218)); |
| | | m_btnCim.SetFrameColor(BS_PRESS, RGB(168, 168, 168)); |
| | | m_btnCim.SetTextColor(m_crForeground); |
| | | |
| | | return TRUE; // return TRUE unless you set the focus to a control |
| | | // 异常: OCX 属性页应返回 FALSE |
| | |
| | | if (nCtlColor == CTLCOLOR_STATIC) { |
| | | pDC->SetBkMode(TRANSPARENT); |
| | | pDC->SetBkColor(m_crBkgnd); |
| | | pDC->SetTextColor(RGB(255, 255, 255)); |
| | | pDC->SetTextColor(m_crForeground); |
| | | } |
| | | |
| | | if (m_brBkgnd.GetSafeHandle() == nullptr) { |
| | |
| | | // TODO: 在此处添加消息处理程序代码 |
| | | } |
| | | |
| | | BOOL CMyStatusbar::OnCommand(WPARAM wParam, LPARAM lParam) |
| | | { |
| | | CWnd* pItem; |
| | | CRect rcItem; |
| | | |
| | | switch (LOWORD(wParam)) { |
| | | case IDC_BUTTON_ROBOTTASK: |
| | | pItem = GetDlgItem(IDC_BUTTON_ROBOTTASK); |
| | | pItem->GetWindowRect(rcItem); |
| | | GetParent()->SendMessage(ID_MSG_STATUSBAR_BTN_CLICKED, rcItem.left, LOWORD(wParam)); |
| | | break; |
| | | case IDC_BUTTON_CIM: |
| | | pItem = GetDlgItem(IDC_BUTTON_CIM); |
| | | pItem->GetWindowRect(rcItem); |
| | | GetParent()->SendMessage(ID_MSG_STATUSBAR_BTN_CLICKED, rcItem.left, LOWORD(wParam)); |
| | | break; |
| | | } |
| | | |
| | | return CDialogEx::OnCommand(wParam, lParam); |
| | | } |
| | | |
| | | void CMyStatusbar::OnSize(UINT nType, int cx, int cy) |
| | | { |
| | | CDialogEx::OnSize(nType, cx, cy); |
| | |
| | | int x; |
| | | GetClientRect(&rcClient); |
| | | |
| | | x = 120; |
| | | x = 20; |
| | | pItem = GetDlgItem(IDC_LABEL_RUNTIME); |
| | | pItem->GetClientRect(rcItem); |
| | | pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height()); |
| | | x += rcItem.Width(); |
| | | |
| | | x += 8; |
| | | pItem = GetDlgItem(IDC_LABEL_CUR_TASK_L); |
| | | pItem->GetClientRect(rcItem); |
| | | pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height()); |
| | | x += rcItem.Width(); |
| | | |
| | | x += 8; |
| | | pItem = GetDlgItem(IDC_BUTTON_ROBOTTASK); |
| | | pItem->GetClientRect(rcItem); |
| | | pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height()); |
| | | x += rcItem.Width(); |
| | | |
| | | x += 8; |
| | | pItem = GetDlgItem(IDC_LABEL_CIM); |
| | | pItem->GetClientRect(rcItem); |
| | | pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height()); |
| | | x += rcItem.Width(); |
| | | |
| | | x += 8; |
| | | pItem = GetDlgItem(IDC_BUTTON_CIM); |
| | | pItem->GetClientRect(rcItem); |
| | | pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height()); |
| | | x += rcItem.Width(); |
| | | } |