7.フォームの背景にグラデーションを描く |
1.フォームの背景にグラデーションを描く 2. 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows Vista・Windows 7 (32bit) / VB6.0(SP6) Option :[Option Explicit] 参照設定:追加なし 使用 API:なし その他 : : |
1.フォームの背景にグラデーションを描く |
Option Explicit 'SampleNo:053 2002.05.12 @ 2007.01.18 Private Function GetRed(colorVal As Long) As Integer GetRed = colorVal Mod 256 End Function Private Function GetGreen(colorVal As Long) As Integer GetGreen = ((colorVal And &HFF00FF00) \ 256&) End Function Private Function GetBlue(colorVal As Long) As Integer GetBlue = (colorVal And &HFF0000) \ (256& * 256&) End Function Private Sub Form_Load() Form1.Move 0, 0, 6000, 5000 End Sub Private Sub Form_Paint() Dim newColor As Long, ipixel As Integer, PWidth As Integer Dim redInc As Single, greenInc As Single, blueInc As Single Dim color1 As Long, color2 As Long, lngheight As Long Dim startRed As Integer, startGreen As Integer, startBlue As Integer Dim endRed As Integer, endGreen As Integer, endBlue As Integer color1 = &HFF0000 'StartColor color2 = &HFFFFC0 'EndColor startRed = GetRed(color1): endRed = GetRed(color2) startGreen = GetGreen(color1): endGreen = GetGreen(color2) startBlue = GetBlue(color1): endBlue = GetBlue(color2) lngheight = Form1.Height PWidth = Form1.ScaleWidth If PWidth <= 0 Then Exit Sub '最小化の場合 redInc = (endRed - startRed) / PWidth greenInc = (endGreen - startGreen) / PWidth blueInc = (endBlue - startBlue) / PWidth For ipixel = 0 To PWidth - 1 newColor = RGB(startRed + redInc * ipixel, startGreen _ + greenInc * ipixel, startBlue + blueInc * ipixel) Line (ipixel, 0)-(ipixel, lngheight - 1), newColor Next End Sub 図1.上記実行結果 StartColorとEndColorを好きな色に変更して下さい。 VBの機能だけで表示していますので少し、表示に時間がかかるのが欠点ですが、最近のマシンは処理が早いのでストレスは感じないかも? |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
1.Line を使ってフォームの背景にグラデーションを描く |