打印本文 打印本文 关闭窗口 关闭窗口
VB打造超酷个性化菜单(六)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4905  更新时间:2009/4/23 16:37:47  文章录入:mintao  责任编辑:mintao
nbsp;     Rectangle .hdc, itemRect.Left, itemRect.Top, itemRect.Right, itemRect.Bottom
                                DeleteObject hPen
                                DeleteObject hBrush
                        End Select
                       
                       
                        '''' 画菜单项背景
                        InflateRect itemRect, -1, -1
                        Select Case FillStyle
                            Case ISFS_NONE                                  '''' 无背景
                           
                            Case ISFS_HORIZONTALCOLOR                       '''' 水平渐变色
                               
                                BlueArea = Int(FillEndColor / &H10000) - Int(FillStartColor / &H10000)
                                GreenArea = (Int(FillEndColor / &H100) And &HFF) - (Int(FillStartColor / &H100) And &HFF)
                                RedArea = (FillEndColor And &HFF) - (FillStartColor And &HFF)
           
                                For i = itemRect.Left To itemRect.Right - 1
                                    red = Int(FillStartColor And &HFF) + Int((i - itemRect.Left) / (itemRect.Right - itemRect.Left + 1) * RedArea)
                                    green = (Int(FillStartColor / &H100) And &HFF) + Int((i - itemRect.Left) / (itemRect.Right - itemRect.Left + 1) * GreenArea)
                                    blue = Int(FillStartColor / &H10000) + Int((i - itemRect.Left) / (itemRect.Right - itemRect.Left + 1) * BlueArea)
                                    hPen = CreatePen(PS_SOLID, 1, RGB(red, green, blue))
                                    Call SelectObject(.hdc, hPen)
                                    Call MoveToEx(.hdc, i, itemRect.Top, 0)
                                    Call LineTo(.hdc, i, itemRect.Bottom)
                                    Call DeleteObject(hPen)
                                Next i
                               
                            Case ISFS_VERTICALCOLOR                         '''' 垂直渐变色
                               
                                BlueArea = Int(FillEndColor / &H10000) - Int(FillStartColor / &H10000)
                                GreenArea = (Int(FillEndColor / &H100) And &HFF) - (Int(FillStartColor / &H100) And &HFF)
                                RedArea = (FillEndColor And &HFF) - (FillStartColor And &HFF)
                               
                                For i = itemRect.Top To itemRect.Bottom - 1
                                    red = Int(FillStartColor And &HFF) + Int((i - itemRect.Top) / (itemRect.Bottom - itemRect.Top + 1) * RedArea)
                                    green = (Int(FillStartColor / &H100) And &HFF) + Int((i - itemRect.Top) / (itemRect.Bottom - itemRect.Top + 1) * GreenArea)
                                    blue = Int(FillStartColor / &H10000) + Int((i - itemRect.Top) / (itemRect.Bottom - itemRect.Top + 1) * BlueArea)
                                    hPen = CreatePen(PS_SOLID, 1, RGB(red, green, blue))
                                    Call SelectObject(.hdc, hPen)
                                    Call MoveToEx(.hdc, itemRect.Left, i, 0)
                     

上一页  [1] [2] [3] [4] [5] [6] [7]  下一页

打印本文 打印本文 关闭窗口 关闭窗口