65.9K
CodeProject 正在变化。 阅读更多。
Home

CStaticFader

starIconstarIconstarIconstarIconstarIcon

5.00/5 (9投票s)

1999年12月28日

viewsIcon

94462

downloadIcon

3507

一个 CStatic 类,可以将文本柔和地淡入视图

  • 下载演示项目 - 95 Kb
  • 下载源文件 - 3 Kb
  • Sample Image - static_fader.gif

    本文介绍了一个从CStatic派生的类,它可以平滑地淡入文本。要使用该类,只需声明一个CStaticFader对象,然后让该对象子类化对话框或窗体上的CStatic控件。该控件可以显示单行文本,或者在同一行上显示两个独立的文本字符串(“主文本”和“副文本”)。

    CStaticFader类最初是为我正在编写的一个滚屏应用而设计的(在发布此文章时)。我将其提取出来,整理并记录下来,纯粹是为了CodeProject的热情者。

    CStaticFader的成员函数如下:

    void Initialise( COLORREF crBackground, COLORREF crMainText, COLORREF crSubText)
    void SetAlignLeft()
    void SetAlignRight()
    void SetAlignCentre()
    void SetDrawShadow(bool bShadow)
    void SetDrawBorder(bool bBorder)
    COLORREF GetBackgroundColour()
    void SetBackgroundColour(COLORREF crColour)
    void SetSubTextColour(COLORREF crColour)
    void SetMainTextColour(COLORREF crColour)
    void Display(CString strText, CString strSubText, int nFadePercent, bool bResetColours, 
                 CString strSubFont, CString strMainFont) 
    

    大多数函数都顾名思义,除了InitialiseDisplayInitialise接受3个参数,分别代表控件背景颜色、主文本颜色和副文本颜色。

    Display方法接受主文本、副文本、淡入百分比(文本淡入所需的时间,以秒为单位)以及一个标志,用于指定是否应将颜色重置为默认值。如果副文本字符串不为空,则将其显示在单独的字段中(如屏幕截图所示),否则整个控件将用于显示主文本。

    Display()函数的最后两个参数是为与Jamie的CAutoFont::ExtractFont()函数可选使用而设计的。这些尚未经过测试;)

    要使用该类,假设你有一个名为m_stcFaderCStaticFader对象。在本例中,我们将设置背景、主文本和副文本颜色,将阴影绘制设置为开启,将文本居中,然后显示一些文本和副文本。我们将nFadePercent值设置为100,以便文本完全淡入需要一整秒。

    m_stcFader.Initialise( RGB(100,100,150), RGB(200,200,0), RGB(0,220,0) );
    m_stcFader.SetDrawShadow();
    m_stcFader.SetAlignCentre();
    m_stcFader.Display("This demonstrates the changing of all the colours (plus shadow)",
                       "119:71", 100);
    

    其他酷炫的类

    © . All rights reserved.