利用VB2005制作颜色渐变的进度条
現在Windows環境下的應用程序經常要用到進度條,用以指示出一些復雜進程的運行狀態。目前我們在窗體設計時,使用的都是單色進度條。本文講述在WindowsXP環境下,使用VB2005制作一個漂亮的顏色 漸變的進度條組件。
一.技術細節
這種進度條的顯示相當于使用許多顏色相近的“ 畫筆”在窗體上繪制方框。這些“畫筆”就相當于一個畫筆數組。首先要建立顏色數組 ,初始的時候放入一些顏色值,然后根據平滑度的設置來重新設置顏色數組。依次取出顏色數組中兩個 相鄰的顏色值,計算這兩個顏色經過混合后的顏色,再放入到兩個顏色的中間。例子中顏色數組中有8種 顏色。平滑度的值從0開始循環,最高是7。每經過一次循環,顏色數組中就增加了一些過渡顏色。平滑 度設置的越大,則顏色過渡的越柔和。產生的效果越漂亮。顏色數組生成之后,畫筆數組就確定了。它 的大小和顏色數組一致。有了畫筆數組,下面的問題就是在窗體上進行繪圖操作了。
二、實現原理
在繪圖操作之前。所以要重載基類中的窗體的消息處理事件WndProc,窗體大小變化事件 OnResize和窗體重繪事件OnPaint。加入以下屬性設置:
Minimum。表示進度條的最小值。默認是 0 。
Maximum。表示進度條的最大值。默認是 100 。
Value。表示了進度條的當前值。默 認是 0 。
Smoothness。表示了進度條顏色漸變的平滑度。默認是 0 。
在初始化的時候 ,設置了以上四個屬性后,相應的畫筆數組產生了。當前值的每次改變都要觸發OnPaint事件。觸發事件 后,首先繪制進度條的外部邊框,接著得到內部邊框的總寬度和高度。根據當前值,最小值和最大值計 算完成百分比,由完成百分比乘以總寬度得到當前值占用的寬度。總寬度除以畫筆數組的個數得到每個 畫筆所占用的寬度。然后就是從初始寬度循環到當前值占用的寬度,從畫筆數組中依次使用畫筆按照每 個畫筆所占用的寬度和高度填充顏色。循環結束后,如果百分比為100。則使用畫筆數組中的最后一個 畫筆繪制顏色。進度條顯示完畢。
魚臺論壇http://bbs.370827.org/thread-5725-1-1.html
總結
以上是生活随笔為你收集整理的利用VB2005制作颜色渐变的进度条的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用SPI编写类似sockscap的代理
- 下一篇: angularJS 基础回顾