| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // CMyStatusbar.cpp: å®ç°æä»¶ |
| | | // |
| | | |
| | | #include "stdafx.h" |
| | | #include "Servo.h" |
| | | #include "CMyStatusbar.h" |
| | | #include "afxdialogex.h" |
| | | |
| | | |
| | | // CMyStatusbar å¯¹è¯æ¡ |
| | | |
| | | IMPLEMENT_DYNAMIC(CMyStatusbar, CDialogEx) |
| | | |
| | | CMyStatusbar::CMyStatusbar(CWnd* pParent /*=nullptr*/) |
| | | : CDialogEx(IDD_STATUSBAR, pParent) |
| | | { |
| | | m_crBkgnd = STATUSBAR_BK_NORMAL; |
| | | } |
| | | |
| | | CMyStatusbar::~CMyStatusbar() |
| | | { |
| | | } |
| | | |
| | | void CMyStatusbar::DoDataExchange(CDataExchange* pDX) |
| | | { |
| | | CDialogEx::DoDataExchange(pDX); |
| | | } |
| | | |
| | | |
| | | BEGIN_MESSAGE_MAP(CMyStatusbar, CDialogEx) |
| | | ON_WM_CTLCOLOR() |
| | | ON_WM_DESTROY() |
| | | ON_WM_SIZE() |
| | | END_MESSAGE_MAP() |
| | | |
| | | |
| | | // CMyStatusbar æ¶æ¯å¤çç¨åº |
| | | |
| | | |
| | | void CMyStatusbar::setBackgroundColor(COLORREF color) |
| | | { |
| | | if (m_brBkgnd.GetSafeHandle() != nullptr) { |
| | | m_brBkgnd.DeleteObject(); |
| | | } |
| | | |
| | | m_brBkgnd.CreateSolidBrush(color); |
| | | Invalidate(); |
| | | UpdateWindow(); |
| | | } |
| | | |
| | | void CMyStatusbar::setForegroundColor(COLORREF cr) |
| | | { |
| | | m_crForeground = cr; |
| | | Invalidate(); |
| | | UpdateWindow(); |
| | | } |
| | | |
| | | void CMyStatusbar::setRunTimeText(const char* pszText) |
| | | { |
| | | SetDlgItemText(IDC_LABEL_RUNTIME, pszText); |
| | | } |
| | | |
| | | BOOL CMyStatusbar::OnInitDialog() |
| | | { |
| | | CDialogEx::OnInitDialog(); |
| | | |
| | | // TODO: 卿¤æ·»å é¢å¤çåå§å |
| | | |
| | | return TRUE; // return TRUE unless you set the focus to a control |
| | | // å¼å¸¸: OCX 屿§é¡µåºè¿å FALSE |
| | | } |
| | | |
| | | HBRUSH CMyStatusbar::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) |
| | | { |
| | | HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor); |
| | | |
| | | // TODO: 卿¤æ´æ¹ DC çä»»ä½ç¹æ§ |
| | | |
| | | if (nCtlColor == CTLCOLOR_STATIC) { |
| | | pDC->SetBkMode(TRANSPARENT); |
| | | pDC->SetBkColor(m_crBkgnd); |
| | | pDC->SetTextColor(m_crForeground); |
| | | } |
| | | |
| | | if (m_brBkgnd.GetSafeHandle() == nullptr) { |
| | | m_brBkgnd.CreateSolidBrush(m_crBkgnd); |
| | | } |
| | | |
| | | return (HBRUSH)m_brBkgnd; |
| | | } |
| | | |
| | | void CMyStatusbar::OnDestroy() |
| | | { |
| | | CDialogEx::OnDestroy(); |
| | | |
| | | // TODO: 卿¤å¤æ·»å æ¶æ¯å¤çç¨åºä»£ç |
| | | } |
| | | |
| | | void CMyStatusbar::OnSize(UINT nType, int cx, int cy) |
| | | { |
| | | CDialogEx::OnSize(nType, cx, cy); |
| | | if (nullptr == GetDlgItem(IDC_LABEL_RUNTIME)) return; |
| | | Resize(); |
| | | } |
| | | |
| | | void CMyStatusbar::Resize() |
| | | { |
| | | CRect rcClient, rcItem; |
| | | CWnd* pItem = nullptr; |
| | | int x; |
| | | GetClientRect(&rcClient); |
| | | |
| | | x = 120; |
| | | pItem = GetDlgItem(IDC_LABEL_RUNTIME); |
| | | pItem->GetClientRect(rcItem); |
| | | pItem->MoveWindow(x, (rcClient.Height() - rcItem.Height()) / 2, rcItem.Width(), rcItem.Height()); |
| | | } |