CFontStatic_src.zip

  • sky1258
    了解作者
  • Visual C++
    开发工具
  • 3KB
    文件大小
  • zip
    文件格式
  • 0
    收藏次数
  • 1 积分
    下载积分
  • 10
    下载次数
  • 2005-08-02 04:35
    上传日期
FontStatic 是一個可以在Static 上變化字型一控件。
CFontStatic_src.zip
  • CFontStatic_src
  • FontStatic.h
    2.2KB
  • FontStatic.cpp
    4.5KB
  • www.pudn.com.txt
    218B
内容介绍
///////////////////////////////////////////////////////////////////////////// // // Filename: FontStatic.cpp // Classname: CFontStatic // // Written by: Patrik Svensson (patrik.svensson@home.se) // // This class can be used by anyone for any purpose, // but if you like it, then send me a mail and tell me so ;) // ///////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "FontStatic.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// CFontStatic::CFontStatic() { // Set the font style m_bBold = false; m_bItalic = false; m_bUnderlined = false; m_bStrikethrough = false; m_bAntialias = false; // Set the horizontal alignment m_bCenter = false; m_bLeft = true; m_bRight = false; // Set default font m_bBgColor = false; m_nSize = 8; m_dwColor = RGB(0,0,0); m_szFont.Format("MS Sans Serif"); } CFontStatic::~CFontStatic() { } ///////////////////////////////////////////////////////////////////////////// BEGIN_MESSAGE_MAP(CFontStatic, CStatic) //{{AFX_MSG_MAP(CFontStatic) ON_WM_PAINT() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// void CFontStatic::PreSubclassWindow() { ModifyStyle(0, SS_NOTIFY, TRUE); CStatic::PreSubclassWindow(); } ///////////////////////////////////////////////////////////////////////////// void CFontStatic::OnPaint() { CFont fFont; CFont *fOldFont; int nWeight; CPaintDC dc(this); DWORD dwQuality; CRect rect; UINT unFormat=0; // Get the window text CString szText; this->GetWindowText(szText); // Get the client rect this->GetClientRect(rect); // Set the background if(m_bBgColor) dc.FillSolidRect(rect,m_dwBgColor); else dc.FillSolidRect(rect,GetSysColor(COLOR_3DFACE)); // Set the text-color and background dc.SetTextColor(m_dwColor); dc.SetBkMode(TRANSPARENT); // Determine the weight of the font if(m_bBold) nWeight = FW_BLACK; else nWeight = FW_NORMAL; // Set the quality of the font if(m_bAntialias) dwQuality = ANTIALIASED_QUALITY; else dwQuality = DEFAULT_QUALITY; // Set the horizontal alignment if(m_bCenter) unFormat|=DT_CENTER; else if(m_bRight) unFormat|=DT_RIGHT; else if(m_bLeft) unFormat|=DT_LEFT; // Set no prefix and wordwrapping unFormat|=DT_NOPREFIX; unFormat|=DT_WORDBREAK; // Create the font fFont.Detach(); if(fFont.CreateFont(m_nSize,0,0,0, nWeight ,m_bItalic, m_bUnderlined, m_bStrikethrough, DEFAULT_CHARSET, OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, dwQuality, DEFAULT_PITCH | FF_DONTCARE, m_szFont)!=NULL) { fOldFont = dc.SelectObject(&fFont); dc.DrawText(szText,rect,unFormat); } else AfxMessageBox("Font could not be created!"); } ///////////////////////////////////////////////////////////////////////////// void CFontStatic::SetFontStyle(DWORD dwStyle) { // Set the style of the static if(dwStyle&FS_BOLD) m_bBold = true; if(dwStyle&FS_ITALIC) m_bItalic = true; if(dwStyle&FS_UNDERLINED) m_bUnderlined = true; if(dwStyle&FS_STRIKETHROUGH) m_bStrikethrough = true; if(dwStyle&FS_ANTIALIAS) m_bAntialias = true; if(dwStyle&FS_NORMAL) { // This will (even if it's combined with other defines) // set all styles to false. m_bBold = false; m_bItalic = false; m_bUnderlined = false; m_bStrikethrough = false; m_bAntialias = false; m_bCenter = false; m_bLeft = true; m_bRight = false; } // Set all alignments to false m_bCenter = false; m_bLeft = false; m_bRight = false; // Set the horizontal alignment if(dwStyle&FS_CENTER) m_bCenter = true; else if(dwStyle&FS_RIGHT) m_bRight = true; else if(dwStyle&FS_LEFT) m_bLeft = true; else m_bLeft = true; } ///////////////////////////////////////////////////////////////////////////// void CFontStatic::SetBackground(DWORD dwBgColor) { // Set the background color m_dwBgColor = dwBgColor; m_bBgColor = true; } ///////////////////////////////////////////////////////////////////////////// void CFontStatic::SetFontStatic(CString szFont, int nSize, DWORD dwColor, DWORD dwStyle) { // Set the font, size and color. m_szFont = szFont; m_nSize = nSize; m_dwColor = dwColor; // Set the style SetFontStyle(dwStyle); } /////////////////////////////////////////////////////////////////////////////
评论
    相关推荐