转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
创意无极限,用VB7制作您的个性化菜单         ★★★★

创意无极限,用VB7制作您的个性化菜单

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2124 更新时间:2009/4/23 18:59:34
法新建的渐变颜色刷子的实例要销毁,但是前面的声明还是有效的

        br = Nothing    ''''将整个刷子暂时清空

        Dim sf As StringFormat = New StringFormat()
        sf.HotkeyPrefix = HotkeyPrefix.Show
        ''''指定与文本相关的热键前缀的显示类型。将其设置为显示
        sf.SetTabStops(60, New Single() {0})
        ''''第一个参数firstTabOffset表示
        ''''文本行开头和第一个制表位之间的空格数。
        ''''第二个参数tabStops()表示
        ''''制表位之间的距离(以空格数表示)的数组。
        If Mi.Enabled Then ''''根据菜单是否可用来决定图像刷子的颜色
            br = New SolidBrush(EvDrawItems.ForeColor)
        Else
            br = New SolidBrush(Color.Gray)
        End If
        ''''在菜单上面写字
        EvDrawItems.Graphics.DrawString(GetRealText(Mi),MyFont,br,EvDrawItems.Bounds.Left + 25, EvDrawItems.Bounds.Top + 2, sf)
        br.Dispose()
        br = Nothing
        sf.Dispose()
        sf = Nothing
    End Sub

    Function GetRealText(ByVal Mi As MenuItem) As String
这个事件是用来获得菜单文本的
        Dim s As String = Mi.Text  ''''获得菜单原始文本
        If Mi.ShowShortcut And Mi.Shortcut <> Shortcut.None Then
            Dim k As Keys = CType(Mi.Shortcut, Keys)
            ''''如果有菜单快捷键就让菜单文本加上快捷键文本
s = s & Convert.ToChar(9) & TypeDescriptor.GetConverter(GetType(Keys)).ConvertToString(k)
        End If
        Return s
    End Function
    说明:当然您可以让菜单的文本变成任何您想要的文本!
End Module

好了,最后一步就要看看我们的实际效果了,在原来的窗体上写上代码吧!!
下面我们以“美化”第一,第二个菜单项为例子,当然,一般主菜单不应该有图标的。看懂了以后,各位按照自己的想象力来画自己的菜单好了。

    Private Sub MenuItem1_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles MenuItem1.MeasureItem
第一个测量事件 ,特别注意“Handles“标志 !
        Dim MyFont As New System.Drawing.Font("Arial", 8) ‘定义一个你喜欢的字体
        MeasureItems(e, MenuItem1, Myfont)
     End Sub

    Private Sub MenuItem1_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles MenuItem1.DrawItem
        Dim Ic As New Icon("C:\file.ico")   ‘定义一个您喜欢的图标
        Dim MyFont As New System.Drawing.Font("Arial", 8)  ‘这个字体最好和前面保持一致,当然如果您愿意,也可以在前面一种字体的确定范围用新字体写字,但是字体最好不要设置得太过火了,不然可能有意想不到的后果!
        DrawItems(e, MenuItem2, Ic, Color.Blue, Color.Yellow, Myfont)
     End Sub

Private Sub MenuItem2_DrawItem(ByVal sender As Object, ByVal e As System.Windows.Forms.DrawItemEventArgs) Handles MenuItem2.DrawItem
        e.Graphics.CompositingQuality=Drawing.Drawing2D.CompositingQuality.HighQuality
        Dim Ic As New Icon("C:\open.ico")
        Dim MyFont As New System.Drawing.Font("Arial", 14)
        DrawItems(e, MenuItem2, Ic, Color.Tomato, Color.LavenderBlush, MyFont)
    End Sub

    Private Sub MenuItem2_MeasureItem(ByVal sender As Object, ByVal e As System.Windows.Forms.MeasureItemEventArgs) Handles MenuItem2.MeasureItem
        Dim MyFont As New System.Drawing.Font("Arial", 14)
        MeasureItems(e, MenuItem2, MyFont)
    End Sub
运行一下,你会得到一个主菜单也有图标,各个菜单项的字体和底色都不同的菜单!这只是一个演示,但是最好不要在真正的软件中这样设计,菜单应该保持统一的风格。
这篇文章只是介绍一个修改菜单的基本方法,我希望大家能够举一反三,发挥自己的创造力,制作出自己的个性化菜单来!

上一页  [1] [2] 


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台