无组件、无图片实现动态效果的进度条

易语言 2020-08-19 17:03:55

无组件、无图片实现动态效果的进度条

关于可能存在闪烁的问题提出下可能的解决方法:可以使用多个线程完成操作,背景可以响应重绘消息再进行重绘,高亮条和填充功能可以分开。

API_RoundRect (pdc, 开始点x, 开始点y, 开始点x + 进度条宽度, 开始点y + 进度条高度, 进度条高度 ÷ 2, 进度条高度 ÷ 2)
light = light + 5
.如果真 (light > 进度条宽度)
light = 0
.如果真结束
.如果真 (当前位置 > 进度条宽度)
API_ReleaseDC (hwnd, pdc)
返回 ()
.如果真结束
.计次循环首 (当前位置 - 2, i)
rect.左边 = 开始点x + i
rect.顶边 = 开始点y + 1
rect.右边 = 开始点x + 1 + i
rect.底边 = 开始点y + 进度条高度 - 1
R = 0
G = 250 - i
B = 150 + i
.如果真 (light + 开始点x + 5 > rect.右边)
.如果真 (light + 开始点x - 5 < rect.左边)
R = 200
G = G + 50
.如果真 (G > 255)
G = 255
.如果真结束
B = B + 50
.如果真 (B > 255)
B = 255
.如果真结束

.如果真结束

.如果真结束
pen = API_CreatePen (#PS_SOLID, 1, 取颜色值 (R, G, B))
API_FrameRect (pdc, rect, pen)
API_DeleteObject (pen)
.计次循环尾 ()
API_ReleaseDC (hwnd, pdc)