參考了MFC源碼,繼承CMFCRibbonStatusBarPane,重寫OnDraw虛函數,實現字體顏色和圖標的切換。
//.h文件內容 #pragma once #include "afxribbonstatusbarpane.h" #include "MemDC.h" class CScale3DCStatusBarPanel : public CMFCRibbonStatusBarPane { public: CScale3DCStatusBarPanel( UINT nCmdID, // Pane command id LPCTSTR lpszText, // Pane label BOOL bIsStatic = FALSE, // Pane is static (non-clickable) HICON hIcon = NULL, // Pane icon LPCTSTR lpszAlmostLargeText = NULL);// The almost large text in pane ~CScale3DCStatusBarPanel(); virtual void OnDraw(CDC* pDC); protected: BOOL m_bIsOpen = TRUE; //是否顯示紅色字體 public: void SetTextColor(BOOL bIsValue = FALSE); //設置字體顏色 }; //.cpp文件內容 #include "stdafx.h" #include "Scale3DCStatusBarPanel.h" #include "resource.h" CScale3DCStatusBarPanel::CScale3DCStatusBarPanel( UINT nCmdID, LPCTSTR lpszText, BOOL bIsStatic, HICON hIcon, LPCTSTR lpszAlmostLargeText ) { CommonInit(); //父類成員變量 m_strAlmostLargeText = (lpszAlmostLargeText == NULL) ? _T("") : lpszAlmostLargeText; m_bIsStatic = bIsStatic; m_strText = lpszText; m_bIsOpen = FALSE;//自定義成員變量 } void CScale3DCStatusBarPanel::OnDraw(CDC* pDC) { ASSERT_VALID(this); ASSERT_VALID(pDC); if (m_rect.IsRectEmpty()) { return; } else { m_rt.CopyRect(m_rect); } OnFillBackground(pDC); pDC->SetTextColor(RGB(21, 66, 139)); pDC->DrawText(m_strText, m_rect, DT_LEFT); OnDrawBorder(pDC); } void CScale3DCStatusBarPanel::SetTextColor(BOOL bValue) { m_bIsOpen = bValue; }
調用方法如下:
m_wndStatusBar.AddElement(new CScale3DCStatusBarPanel(ID_STATUSBAR_PANE4, strComWork + strComWork1 + _T("(0)"), TRUE), strComWork);
CScale3DCStatusBarPanel* pElem = (CScale3DCStatusBarPanel*)m_wndStatusBar.GetElement(7);
pElem->SetAlmostLargeText(_T("........................................"));
pElem->Redraw();
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文名稱:重寫CMFCRibbonStatusBarPane類-創新互聯
標題URL:http://vcdvsql.cn/article46/depheg.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、網站設計、網站維護、自適應網站、品牌網站制作、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯