MFCApplication1环形进度条控件实现
MFC 的自定义控件扩展能力一直挺强的,自己封一套小玩意不难,关键是怎么封得漂亮、用得顺。环形进度条就是个蛮有意思的例子,样子现代、实用性也不差,尤其用在加载、刷新那类场景,还挺直观的。
自定义的思路清晰——写个继承自 CWnd 的类,比如 CMFCProgressRing
,自己控制绘制逻辑。进度值啥的,就自己定义成员变量搞定。
绘图这块是重点。重写 OnPaint()
,用 GDI 画圆弧,像 Arc()
、Pie()
这些函数派上用场。想让圆环更精细?可以分段画,角度算准点。比如进度是 25%,那就画 90 度。
进度更新也简单,SetProgress()
里更新值,再 Invalidate()
+ UpdateWindow()
强制重绘,响应还挺快。
用法上,就是在 OnInitDialog()
里 Create()
一下,别忘了加上 WS_VISIBLE | WS_CHILD
,就能自由设置位置和进度了。
还有一点,记得在资源编辑器里留个控件位置,把 Class
设置成你新建的类名。否则窗口找不到对象,那可就白写了。
如果你做的是 Windows 桌面客户端,又想加点现代 UI 味道,这个自定义环形进度条控件还挺适合塞进你的工具箱里试试。
想看更多环形进度条的实现方式,也可以参考下这些资源:iOS 自定义控件 progressView 环形进度条、自定义环形进度条、多样式渐变环形进度条。
下载地址
用户评论