★卢培培★ ── 欢迎光临卢培培(goodname008)的BLOG

人生真正的快乐,多在贫家茅舍,少在富室红楼。

卢培培
卢培培的公告


只有干不成事的人
没有干不成的事


代码下载说明:请将代码下载地址的链接复制到浏览器的地址栏,按下回车即可正常下载。

最近评论
jingang123gz:在C# 中怎么屏蔽WIN键啊?????
kennylyj:我在做类似的东西的时候遇到一个问题:
由于需要将一些16位的DOS程序的输出导出,因此使用了管道,但直接CreateProcess这些程序是不行的,必须通过ComSpec这个环境变量得到命令行程序的路径并把要运行的DOS程序的路径及相关参数作为命令行程序的参数才行,或者是先运行cmd/command,然后通过标准写端口写入要启动的程序的参数
而这样做却导致系统的虚拟机程序……
mycaibo:原来可以下载呀,我还自己写了一遍,不过说KBDLLHOOKSTRUCT没有定义,也不知道是为什么,谢谢哈
jarcyju:大哥下载不了呀,麻烦发一份给我,谢谢啦
zhuyc0808@gmail.com
wuzhongyi:我认为以上的方案不好,看样子你也是做开发的。先不考虑硬盘本身的分区特点及如何得到更快的访问速度,

现在如果c:\为系统盘,而也是你常用的。那样XP安装完以后要多大?2G左右吧,那么虚拟的内存又会占用1G多,你再装点软件什么的。VS2005+msdn即使你不装在C盘,照样撑死你。
文章分类
收藏
    相册
    其它图片
    文章用图
    A.我的软件
    1.注册表大师 v2.0
    2.窗口间谍
    3.图易贴 v1.1
    B.强烈推荐
    1.VB打造超酷个性化菜单[一]
    2.VB打造超酷个性化菜单[二]
    3.VB打造超酷个性化菜单[三]
    4.剖析VC++函数调用约定
    C.有脚印的地方
    CSDN--中国软件网
    微软中国社区
    微软中文新闻组
    D.开放源代码
    1.鼠标感应器
    2.VB自绘菜单类
    3.你想要钱吗?
    E.友情链接
    1. 凝尘
    2. 羽毛羽毛
    3. 泗水寻芳
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 VB打造超酷个性化菜单(一)收藏

    新一篇: VB打造超酷个性化菜单(二) | 旧一篇: 如何获得 Windows 操作系统的版本

    VB打造超酷个性化菜单(一)

     

        众所周知,MS Office 2003推出已经有一段时间了,但我们依然不会忘记Office XP刚刚推出时其令人耳目一新的菜单给我们留下的深刻印象。突起的悬浮式图标,不同寻常的菜单项填充方式,不仅让办公一族们赞不绝口,更让广大的程序员和编程爱好者对这种风格的菜单的制作产生了浓厚的兴趣。所以,在这篇文章里,我们就来好好地研究研究用VB怎么制作这种风格的菜单,在文章的最后,我将给出源代码的下载地址。事实上,在了解其原理以后,不论是用VBVC还是Delphi,都能够制作出XP风格的菜单。不仅如此,我们还可以制作出更加充满个性的另类风格的菜单,比如3D立体风格、渐变风格、多彩风格等等。只有想不到的,没有做不到的。Follow me

        现在,我想有必要说一说我们现在要做的事情。事实上,我们只要做一个菜单类就行了。但谁都会明白,只做一个菜单类是不够的,我们需要一个程序,或者更详细的说,是一个窗体,来测试我们的菜单类。在我个人的开发过程中,我是先写的菜单类,后写的测试窗体,但为了让大家先领略一下写好的菜单类在应用时是多么的方便,所以让我们先来看看测试窗体:

        1)打开VB,新建“标准EXE”工程。

        2­­下面是窗体的控件:

     

    组件名称

    属性

    Form

    Name

    Caption

    frmMain

    菜单例子

    Frame

    Name

    Caption

    fraStyle

    菜单风格

    Label

    Name

    Caption

    lblHelp

    在窗体空白处单击鼠标右键

    OptionButton

    Name

    Caption

    Index

    opnStyle

    Window 标准

    0

    OptionButton

    Name

    Caption

    Index

    opnStyle

    XP 风格

    1

    OptionButton

    Name

    Caption

    Index

    opnStyle

    3D 立体风格

    2

    OptionButton

    Name

    Caption

    Index

    opnStyle

    渐变风格

    3

    OptionButton

    Name

    Caption

    Index

    opnStyle

    多彩风格

    4

     

        其实就是在窗体上添加了一个Frame,然后在Frame里添加OptionButton控件数组,用来设置菜单风格,还有一个Label,上面只显示一行提示文字,非常简单。

        3)窗体代码:

     

    Option Explicit

     

    Private Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINTAPI) As Long

     

    Private Type POINTAPI

        X As Long

        Y As Long

    End Type

     

    Dim menu As cMenu

     

    Private Sub Form_Load()

        ' 初始化菜单并添加菜单项

        Set menu = New cMenu

        menu.CreateMenu

        menu.AddItem "open", LoadPicture("images\open.ico"), "打开", MIT_STRING

        menu.AddItem "save", LoadPicture("images\save.ico"), "保存", MIT_STRING

        menu.AddItem "print", LoadPicture("images\print.ico"), "打印", MIT_STRING

        menu.AddItem "find", LoadPicture("images\find.ico"), "查找", MIT_STRING

        menu.AddItem "sep1", LoadPicture(), "", MIT_SEPARATOR

        menu.AddItem "undo", LoadPicture("images\undo.ico"), "撤消", MIT_STRING

        menu.AddItem "redo", LoadPicture("images\redo.ico"), "重复", MIT_STRING

        menu.AddItem "sep2", LoadPicture(), "", MIT_SEPARATOR

        menu.AddItem "cut", LoadPicture("images\cut.ico"), "剪切", MIT_STRING

        menu.AddItem "copy", LoadPicture("images\copy.ico"), "复制", MIT_STRING

        menu.AddItem "paste", LoadPicture("images\paste.ico"), "粘贴", MIT_STRING

        menu.AddItem "sep3", LoadPicture(), "", MIT_SEPARATOR

        menu.AddItem "check", LoadPicture("images\check.ico"), "一个 CheckBox", MIT_CHECKBOX

        menu.AddItem "exit", LoadPicture("images\exit.ico"), "退出", MIT_STRING

    End Sub

     

    Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

        ' 单击鼠标右建弹出菜单

        If Button = vbRightButton Then

            Dim pos As POINTAPI

            GetCursorPos pos

            menu.PopupMenu pos.X, pos.Y, POPUP_LEFTALIGN Or POPUP_TOPALIGN

        End If

    End Sub

     

    Private Sub Form_Unload(Cancel As Integer)

        ' 释放资源, 卸载窗体

        Set menu = Nothing

        Dim frm As Form

        For Each frm In Forms

            Unload frm

        Next

    End Sub

     

    Private Sub opnStyle_Click(Index As Integer)

        ' 设置菜单风格

        Select Case Index

            Case 0                                  ' Windows 标准

                menu.Style = STYLE_WINDOWS

            Case 1                                  ' XP 风格

                menu.Style = STYLE_XP

            Case 2                                  ' 3D 立体风格

                menu.Style = STYLE_3D

            Case 3                                  ' 渐变风格

                menu.Style = STYLE_SHADE

            Case 4                                  ' 多彩风格

                menu.Style = STYLE_COLORFUL

        End Select

    End Sub

     

        代码中创建了一个cMenu类的对象,我们的编程重点将会放在cMenu类上,上面的代码只是简单地调用cMenu。在后面的文章中,我们会看到其实cMenu有多达30个方法和属性供我们调用,它的Style属性只提供了5种内置风格,在实际应用中,我们可以利用cMenu类提供的方法和属性制作出各种各样风格的菜单,为自己的程序锦上添花。

        4)运行结果:

     

    Windows 标准

     

    XP 风格

     

    3D立体风格

     

    渐变风格

     

    多彩风格

     

     

        这篇文章只是抛砖引玉,让大家先睹为快,提前体验一下这个菜单类的魅力。在下一篇中,我们将继续讨论个性化菜单的制作,不一样的是,我们的重点将是那个cMenu类。   :)

     

    (待续)

     

     

    发表于 @ 2004年07月12日 14:48:00|评论(loading...)|编辑

    新一篇: VB打造超酷个性化菜单(二) | 旧一篇: 如何获得 Windows 操作系统的版本

    评论

    #lorry118 发表于2004-07-12 23:10:00  IP: 221.232.68.*
    写的好 我感觉就是花样性多点
    #goodname008(文章作者) 发表于2004-07-13 00:30:00  IP: 61.51.128.*
    这种菜单不就是花样性越多越好吗? :D
    其实贴出来的这几种只是菜单类自带的,大家还可以根据自己的喜好定义自己的风格。
    #goodname008(文章作者) 发表于2004-07-13 13:54:00  IP: 61.51.128.*
    呵呵,控件也是人做的。

    自己动手,丰衣足食嘛。 :D
    #PingYou 发表于2004-07-13 08:12:00  IP: 61.145.190.*
    呵呵,写的不错啊。
    以前我只会用别人做好的控件来做这种菜单。
    #忽悠惯了 发表于2004-07-13 14:10:00  IP: 218.3.243.*
    天天就知道瞎忽悠.
    #sakurako(最爱API) 发表于2004-08-07 17:06:00  IP: 221.208.90.*
    真是太厉害了
    以前在网上找到个自画菜单源代码,太长了
    我看了都眼晕
    这个就好多了
    比那个少多了(包括模块鹤类模块)
    佩服,有机会指点一二
    QQ:16550691
    #goodname008(文章作者) 发表于2004-08-24 13:23:00  IP: 61.51.129.*
    给"豪侠"发了。
    只有新建子菜单的代码,没进行子类处理,物主绘图。
    结合文章中的技术可以做的。
    #豪侠 发表于2004-08-24 11:03:00  IP: 218.85.82.*
    挺不错的,就是不能建立子菜单!!!!!!!!!
    #豪侠 发表于2004-08-24 11:05:00  IP: 218.85.82.*
    挺不错的,就是不能建立子菜单!!!!!!!!!
    如果哪位知道,请发一个源码给我,我的E-mail:haoxia8888@sina.com
    #风吹那树叶 发表于2004-10-09 11:07:00  IP: 220.160.177.*
    对菜单编写不熟呢,能不能直接就用到菜单上?
    #blldw 发表于2004-11-15 14:31:00  IP: 222.217.23.*
    如果是对窗体中已经设计好的菜单该如何做呢?还有,对于不确定的子菜单的问题!?
    #sluckywhh 发表于2004-12-01 13:40:00  IP: 222.94.176.*
    请帮忙解答一下我的问题,谢谢http://community.csdn.net/Expert/topic/3603/3603114.xml?temp=.5560877
    #江风一笑 发表于2004-12-07 01:08:00  IP: 219.136.64.*
    有时会出问题
    #如风 发表于2005-01-10 09:54:00  IP: 60.0.70.*
    很好啊,就是不能建立子菜单!!!!!!
    如果哪位知道,请发一个源码给我!!!我的邮箱是huo_0318@126.com
    #5555 发表于2005-01-14 14:39:00  IP: 218.106.101.*
    老大 我对你崇拜得五体投地了,我找了三天类似的代码 其他人都让我用什么控件 好不容易才看到你这么实用的文章
    #xushu 发表于2005-01-14 14:54:00  IP: 218.106.101.*
    能告诉我怎么样实现普通菜单而不是弹出菜单的特殊效果么
    #xushu 发表于2005-01-14 14:55:00  IP: 218.106.101.*
    我的邮箱是flyshu@qq.com,谢谢了
    #biantc 发表于2005-01-18 17:14:00  IP: 61.50.141.*
    应用程序的普通菜单如何实现特殊效果呢?请指点一下或发送一些资料Biantc@126.com
    #lotus2002207 发表于2005-02-15 14:41:00  IP: 218.92.145.*
    应用程序的普通菜单如何实现特殊效果呢?请指点一下或发送一些资料lotus2002207@sohu.com
    #lotus 发表于2005-02-15 14:45:00  IP: 218.92.145.*
    请问你的QQ号是多少.我想今后常联系你.拜托一定要告诉我.
    #laviewpbt 发表于2005-03-19 14:49:00  IP: 61.187.64.*
    不错
    #飞翔 发表于2005-06-06 11:33:00  IP: 61.186.252.*
    很不错
    我源码发给我吧
    yan6818155@163.net
    #期待明天 发表于2005-09-07 16:54:00  IP: 211.100.21.*
    非常想学习VB个性化菜单的制作。
    希望能得到完整的源程序和相关类。
    先谢谢了!

    shiben_jy@eyou.com
    #风的男子 发表于2005-09-12 18:05:00  IP: 211.100.21.*
    在CSDN中看了 对《VB程序实现WindowsXP效果的界面》一文的补遗这篇文章,说的原文是在您的blog,但是我没找到,
    你提供的那个下载地址下不了,请把那个把.manifest写成的资源文件发给我好吗,谢谢了。我的邮箱是windboymails@yahoo.com.cn
    支持你
    #天の痕 发表于2006-03-15 04:11:00  IP: 222.241.135.*
    哇.终于找到.这个网址啦.
    我也是还是那个添加子菜单的问题.
    不知道怎么拉添加子菜单`...
    如果把子菜单做好.(包括"绘图").^_^.就更好了.
    ...goodname008..给我源码吧.
    我这不知道怎么搞的下载不了...
    我邮箱:
    yyren520@126.com
    谢谢啦
    #淼彦 发表于2006-05-26 00:18:00  IP: 221.212.143.*
    卢培培我在改你的VB打造超酷个性化菜单遇到了问题,好像代码方面你需要完善一下,请联系我,我把我改之后的代码发给你,你看一看。我QQ:14341010
    #goodname008 发表于2006-05-26 13:57:00  IP: 10.0.28.*
    其实这个菜单的例程只是个例程,DEMO之用。要说完善的话,其实早就应该完善了,也有很多地方需要完善,但我现在主要使用VC做开发,VB已经很长时间不用了,呵呵。
    所以如果真要有时间想完善的话,我也肯定是用VC写一个更好的,不过现在看来,没有太多必要了,像Skin++等皮肤相关的SDK已经越来越完善了。
    #Honor Han 发表于2006-07-15 15:02:00  IP: 218.94.136.*
    太好了,可以给我一个源代码吗?我的邮箱hajordeer@163.com。十分感谢!!!
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 卢培培