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

LED 风格显示控件和条形控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.97/5 (16投票s)

2000年1月18日

viewsIcon

159304

downloadIcon

7506

一个使用LED数字风格显示时间的控件,可以显示浮点数或整数

  • 下载演示项目 - 32 Kb
  • 下载源代码 - 8 KB
  • Sample Image - StaticCounter.gif

    CStaticCounter类简化了使用数字风格计数器显示时间和数值的过程 - 无需使用位图。

    该类使用Keith Rule的双缓冲类来完全消除闪烁,并且使用MoveTo/LineTo进行绘制,因此不依赖于位图。

    最初的类是在很久以前编写的,可以在CodeGuru上找到。然而,这个版本的功能更多。新功能包括

    • 浮点数显示
    • 时间显示
    • 修复Bug:Draw()函数中的内存泄漏
    • 鼠标交互(可选),能够进行大 & 小的更改,并且这些更改会根据控件处于“float”或“integer”模式而进行调整。
    • 3D进度条类(我从Paul Meidinger的非常酷的进度条控件中“借用”了该技术),我将其实现为一个单独的类,以便最大程度地重用
    • 内置(可选)通知。在您的对话框中捕获WM_UPDATE_STATIC消息,并在用户与控件交互时获取最新的更改通知。
    • 为您的每个或任何CStaticCounter控件提供ID,以便您在捕获WM_UPDATE_STATIC消息时识别它们
    • 设置(可选)用于浮点数或整数显示的空白填充
    • 定义您自己的格式字符串,以进一步自定义CStaticCounter的输出显示

    该类还使用静态控件的尺寸来计算指标,这意味着它将绘制良好成形的数字,无需最少的干预,无论控件的大小如何。

    如何使用 CStaticCounter

    如果控件用于显示整数值

    单击鼠标左键将值减少 1
    单击鼠标右键将值增加 1
    鼠标左键并拖动增加或减少 (鼠标距离*1)
    鼠标右键并拖动增加或减少 (鼠标距离*0.01) - 但显示一个整数

    如果控件用于显示浮点值

    单击鼠标左键将值减少 0.01
    单击鼠标右键将值增加 0.01
    鼠标左键并拖动增加或减少 (鼠标距离*1)
    鼠标右键并拖动增加或减少 (鼠标距离*0.01)

    显示相关方法

    void Display(CString strDisplay) 

    此函数将以数字计数器样式显示您的字符串,忽略除以下字符之外的所有字符:0 1 2 3 4 5 6 7 8 9 .

    void Display(UINT uSecs=0, UINT uMins=0, UINT uHours=0, UINT uDays=0, 
                 CString strFormat="%D:%H:%M:%S") 

    此函数允许您简单地告诉控件显示,例如,5196秒,只需键入Display(5196)。输出将以D:H:M:S格式显示,除非您相应地更改格式字符串(最后一个参数)。

    void DisplayCurrentTime(CString strFormat = "%H:%M:%S") 
    © . All rights reserved.