用vb如何制作,鼠标在菜单上移动,状态条上显示相关菜单的提示!

xiao_an 2000-04-17 07:05:00


用vb如何制作,鼠标在菜单上移动,状态条上显示相关菜单的提示!
谢谢你!
an_email@yeah.net
http://ayz.yeah.net/


...全文
215 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiao_an 2000-04-20
  • 打赏
  • 举报
回复
谢谢你们!
Chen_Lin 2000-04-17
  • 打赏
  • 举报
回复
http://www.csdn.net/expert/TopicView.asp?id=5486
我发了一个OCX给你,请查收。
major2 2000-04-17
  • 打赏
  • 举报
回复
要用到子分类的技术,由于程序很长,所以我先给你个大致思路,如果需要源代码的例子请发EMAIL:major2@263.net
在windows系统里,每个窗口、控件都有一个系统窗口函数用来处理系统发给它的各种消息,而用API函数setwindowslong,系统允许你安装一个自己的窗口函数,在系统之前先处理某些你要处理的消息,不过在你自己的窗口函数结束时要用API函数callwindowproc来调用一下系统的窗口函数以便系统把你不要处理的消息处理完。当鼠标在菜单上移动时,当鼠标进入某一菜单项,系统会发一个WM_MENUSELECT(可能写错了,因为我手头没有资料,不过大致是这样写的,你可以查一下VB的API浏览器)消息到窗口函数,其中有一个wparam参数的低16位指出了这个菜单项的索引号,高16位是菜单句柄,所以在你的自定义窗口函数里你就可以通过截获这个消息并进行处理以便达到你要的效果。当高16位为0时,鼠标是在主菜单条[文件 编辑 查看 ... 窗口 帮助]上移动,否则为子菜单项。菜单项索引号的编法是主菜单是从0开始,子菜单项从2开始,每隔一个主菜单项的加2,同一个主菜单项里的各相邻项间加1,注意的是分隔条也算一个菜单项,也要占用一个索引号。好了,现在一切OK了,再有不清楚的地方可以去查一下API函数的说明书和微软MSDN光盘里关于窗口子分类技术的说明,再不行的话发个EMAIL给我,我把例子程序发一个给你。
1,barsetup10.exe
Office 97 的工具栏(267KB)
2,ac35vb6.zip
界面控件,支持键盘、 MouseOvers 和定制图相等功能(950KB)
3,activeskin.zip
皮肤效果控件,给您的应用程序加上漂亮的皮肤(2524KB)
4,aniline.zip
流向动画控件(445KB)
5,aresbuttonpro.zip
圆形按钮控件(320KB)
6,axfesetup.exe
窗体扩展控件,包含:自动恢复大小和位置,永远在顶大小限制,完全的 HTML 帮助等(889KB)
7,splitter.zip
是一个简单有效的类似资源管理器的 Splitter 控件(27KB)
8,cooline.zip
cooline(8KB)
9,dbtnw.exe
DameWare 公司出品声音按钮控件(191KB)
10,dwtsw.exe
DameWare 公司出品滚动文本控件(154KB)
11,dockit14.exe
窗体控件(816KB)
12,rainbtnvb6.zip
具有许多功能的按钮控件(112KB)
13,ezwizllt.exe
制作类似安装程序向导的控件(709KB)
14,agfastformvb5.zip
功能很多的增强窗体功能的控件(2333KB)
15,axformanimator.zip
支持系统声音和变焦的窗体 Ani 控件(182KB)
16,ft.zip
可用一行代码创建窗体边框和透明窗体的控件(19KB)
17,fsmsg20d.exe
窗体信息捕获控件(247KB)
18,fssc120d.exe
窗体滚动控件,当控件放不下时,它可以给您更大的区域(354KB)
19,gcjrfm,exe
改良 VB 的 Frame 控件(125KB)
20,hsoft11,zip
包含两个 IE 工具栏和 Office 列表框的小控件(73KB)
21,ledbag6.exe
专业的 LED 控件(317KB)
22,wizardx6.exe
专业的向导控件(427KB)
23,led.zip
LED控件(165KB)
24,led.exe
LED 控件(348KB)
25,picbtn.exe
图片按钮控件(365KB)
26,tips.exe
工具提示文本控件(354KB)
27,numberled.zip
NumberLED控件能生成非常漂亮的数码管(175KB)
28,thbcc.zip
定制窗体标题栏控件。可添加图片、文字来改变标题栏(693KB)
29,trispace.zip 73KB
软件 3D 引擎控件,可构造 3D 物体或场景(73KB)
30,ariadtbsrc.zip
dRIAD工具条(220KB)
31,spltbars.zip
利用该控件可以轻松地在你的应用程序中加入一个分割条(25KB)
32,im209.zip
利用该控件创建带图标的菜单(68KB)
33,hlink.zip
将这个控件加到你的窗体上,并设置好URL,当点击该控件时,你就可以打开一个网站或启动默认的电子邮件程序或是其它指定的程序。此外,你还可以改变颜色、字体、边框以及鼠标悬停状态等(18KB)
34,trayform.zip
该控件让你轻松地将窗体发送到系统托盘中(32KB)
35,activeform.zip
一个给窗体换肤的控件(27KB)
36,rotext.exe
ROTEXT(316KB)
37,newcombo.ZIP
标准的combo控件只允许你从下拉框中选择一个选项,也许有时你需要选择多个,试试这个控件(20KB)
38,mighttywindow.ZIP
一个控件,提供了许多功能:隐藏桌面、隐藏工具条、禁止鼠标、重启动、重新登录等,看看就知道啦。(18KB)
39,rulerdemo.ZIP
一个很普通的标尺控件,有水平和垂直两种样式。(11KB)
40,prop20vb6.ZIP
可以实现与VB中属性栏同样的效果,如字体、颜色、浏览等(150KB)
41,ab2eval.EXE
使用 ActiveBar 2.0 基本上可以做出 Office 2000 的各种程序界面(包括菜单、工具栏、垂直导航、状态栏以及各种Dock 窗口)。(2572KB)
42,j006_actresiz.zip
FORM的大小改变的时候,里面的对象也会跟着放大缩小(附示例原程序)(30KB)
43,j005_TriSpace.zip
此控件是一个软件3D引擎,内有示例源程序。(72KB)
44,j004_lvicodra.zip
可拖拉图标的ListView控件演示
45,j003_graphtreeocx.zip
图形树控件(129KB)
46,j002_coolbutton.zip
注释 椭圆、三角、星...形按钮控件,斑竹苦苦搜寻了n天n个网站,真是功夫不负有心人。 Vrey Very Cool(106KB)
47,j001_digital.zip
能够以液晶字体方式显示数字的一个小控件。(15KB)
48,asbubble01.zip
几个特殊的控件,可以在程序里弹出类似于气泡的对话框(37KB)
49,formshaper.zip
无需再调用api,利用这个控件你可以把窗体设计成为任意的形状(18KB)
50,devporbu.zip
建立如同out look里的菜单条(401KB)
51,chklsb25.zip
它提供了类似 word 和 excel 中的内含检查框 ( checkbox)的列表框(listbox)。在这个控制中,每一个条目的字体、颜色、使能状态和选中状态都可以被单独设置。这个控制也支持3d外观、图片条目和定制的检查框符号(167KB)
52,rulerbar.zip
显示纵向或横向标尺的ocx控件(28KB)
53,axafx30.zip
animationfx控件显示动画效果的演示程序(143KB)
54,axtfx30.zip
transitionfx控件转换文字的演示程序(156KB)
55,display1.zip
控制显示方式的控件(71KB)
56,pwindow.zip
paint window控件(12KB)
57,actresiz.zip
改变form的大小的时候,原来form里的其他对象也会跟着放大放缩,简单但是有用!(30KB)
58,sclcon.zip
不知道你对ie里背景的水印属性有没有印象,现在你在窗体里也可以实现了(162KB)
59,submenu.zip
可以在VB中自定义弹出式子菜单(8KB)
60,zlibtool.zip
较好的一个有进度显示(26KB)
61,vfoutbar.zip
这里还有另一个控件 OutLook 风格的 BAR(39KB)
62,ovalbutton.zip
椭圆形按钮控件(8KB)
63,procbar.zip
一个漂亮进度条(可以显示百分比数字)(9KB)
64,weiqi.zip
围棋对弈程序的开发控件,可方便的开发出网络围棋对弈程序(18KB)
65,133.zip
FormShaper,定制窗体形状的控件(18KB)
66,c4.zip
翻滚文字的 ActiveX 控件(6KB)
67,FreeActiveX.zip
取消控件注册的About对话框限制(45KB)
68,Resize32.ocx
自动改变控件尺寸,在设计程序时只要在窗口上放入该控件,其它事情就由它来做喽…… (51KB)
69,transparent.ocx
可使窗体变成透明,如把控件的属性ShowNonClient设为False可使标题栏消失 (34KB)
70,AICOBUT.zip
动画图标按扭(68KB)
71,vbocx10.zip
以及窗体内的控件是否随窗体大小的改变而改变,以及设置窗体是否处于最上方,以及设置窗体是否以爆炸式方式显示(19KB)
72,Easyscroll.zip
为任何控件增加滚动条(41KB)
73,Zcg_3DLabel.zip
立体标签控件(15KB)
74,vertmenu.zip
用来制作类似Outlook那样的垂直菜单,是代替ActiveBar的不错选择。(有源代码) (280KB)
75,imgctls.zip
该控件包含两个控件,ImgListBox和ImgComboBox。它扩展了ListBox和ComboBox的功能,允许你为这两个控件中的项目添加图片(57KB)
76,boundactivex.zip
使用本控件可以使控件在程序运行时用鼠标拖动(18KB)
77,zbpicbt.zip
VB6写的浮动图形按扭控件(有源代码)(47KB)
78,zbfdbt.zip
VB6写的浮动文本按扭控件(有源代码)(21KB)
79,Polyform.zip
创建不规则窗口(有例子)(94KB)
80,eyes.zip
跟着鼠标转的眼睛控件(有源代码)(6KB)
81,resize.zip
在调整窗体大小时可以将其上的所有控件一同进行调整.免去了大量的编程代码 (37KB)
82,gvocx.zip
一个能看多种图形格式的控件(267KB)
83,flatbtn.zip
能创建类似IE风格的按钮(88KB)
84,spliter.zip
Spliter.ocx控件主要是用来在程序中切分窗口,其中包括两种分割方式:1、竖着切分2、横着切分(18KB)
85,spltrbar.zip
SpltrBar.ocx控件主要是用来在程序中切分窗口(15KB)
86,cooltoolsbar.zip
CoolToolBar v1.0.0控件类似VC的ToolBar的功能,您也可以在VB中轻松实现拖动工具栏了!(22KB)
87,flatcom.zip
平面控件组 - 有六个全平面控件(包括平面按钮、进度条、移动条、COMLIST、窗体移动栏)(42KB)
88,toolbox.zip
自编的类似VB工具箱的控件(217KB)
89,shape1.zip
任意形状窗口控件(96KB)
90,wallstreet.zip
该控件提供了一个可以左右滚动的WallStreet style ticker(51KB)
1,barsetup10.exe
Office 97 的工具栏(267KB)
2,ac35vb6.zip
界面控件,支持键盘、 MouseOvers 和定制图相等功能(950KB)
3,activeskin.zip
皮肤效果控件,给您的应用程序加上漂亮的皮肤(2524KB)
4,aniline.zip
流向动画控件(445KB)
5,aresbuttonpro.zip
圆形按钮控件(320KB)
6,axfesetup.exe
窗体扩展控件,包含:自动恢复大小和位置,永远在顶大小限制,完全的 HTML 帮助等(889KB)
7,splitter.zip
是一个简单有效的类似资源管理器的 Splitter 控件(27KB)
8,cooline.zip
cooline(8KB)
9,dbtnw.exe
DameWare 公司出品声音按钮控件(191KB)
10,dwtsw.exe
DameWare 公司出品滚动文本控件(154KB)
11,dockit14.exe
窗体控件(816KB)
12,rainbtnvb6.zip
具有许多功能的按钮控件(112KB)
13,ezwizllt.exe
制作类似安装程序向导的控件(709KB)
14,agfastformvb5.zip
功能很多的增强窗体功能的控件(2333KB)
15,axformanimator.zip
支持系统声音和变焦的窗体 Ani 控件(182KB)
16,ft.zip
可用一行代码创建窗体边框和透明窗体的控件(19KB)
17,fsmsg20d.exe
窗体信息捕获控件(247KB)
18,fssc120d.exe
窗体滚动控件,当控件放不下时,它可以给您更大的区域(354KB)
19,gcjrfm,exe
改良 VB 的 Frame 控件(125KB)
20,hsoft11,zip
包含两个 IE 工具栏和 Office 列表框的小控件(73KB)
21,ledbag6.exe
专业的 LED 控件(317KB)
22,wizardx6.exe
专业的向导控件(427KB)
23,led.zip
LED控件(165KB)
24,led.exe
LED 控件(348KB)
25,picbtn.exe
图片按钮控件(365KB)
26,tips.exe
工具提示文本控件(354KB)
27,numberled.zip
NumberLED控件能生成非常漂亮的数码管(175KB)
28,thbcc.zip
定制窗体标题栏控件。可添加图片、文字来改变标题栏(693KB)
29,trispace.zip 73KB
软件 3D 引擎控件,可构造 3D 物体或场景(73KB)
30,ariadtbsrc.zip
dRIAD工具条(220KB)
31,spltbars.zip
利用该控件可以轻松地在你的应用程序中加入一个分割条(25KB)
32,im209.zip
利用该控件创建带图标的菜单(68KB)
33,hlink.zip
将这个控件加到你的窗体上,并设置好URL,当点击该控件时,你就可以打开一个网站或启动默认的电子邮件程序或是其它指定的程序。此外,你还可以改变颜色、字体、边框以及鼠标悬停状态等(18KB)
34,trayform.zip
该控件让你轻松地将窗体发送到系统托盘中(32KB)
35,activeform.zip
一个给窗体换肤的控件(27KB)
36,rotext.exe
ROTEXT(316KB)
37,newcombo.ZIP
标准的combo控件只允许你从下拉框中选择一个选项,也许有时你需要选择多个,试试这个控件(20KB)
38,mighttywindow.ZIP
一个控件,提供了许多功能:隐藏桌面、隐藏工具条、禁止鼠标、重启动、重新登录等,看看就知道啦。(18KB)
39,rulerdemo.ZIP
一个很普通的标尺控件,有水平和垂直两种样式。(11KB)
40,prop20vb6.ZIP
可以实现与VB中属性栏同样的效果,如字体、颜色、浏览等(150KB)
41,ab2eval.EXE
使用 ActiveBar 2.0 基本上可以做出 Office 2000 的各种程序界面(包括菜单、工具栏、垂直导航、状态栏以及各种Dock 窗口)。(2572KB)
42,j006_actresiz.zip
FORM的大小改变的时候,里面的对象也会跟着放大缩小(附示例原程序)(30KB)
43,j005_TriSpace.zip
此控件是一个软件3D引擎,内有示例源程序。(72KB)
44,j004_lvicodra.zip
可拖拉图标的ListView控件演示
45,j003_graphtreeocx.zip
图形树控件(129KB)
46,j002_coolbutton.zip
注释 椭圆、三角、星...形按钮控件,斑竹苦苦搜寻了n天n个网站,真是功夫不负有心人。 Vrey Very Cool(106KB)
47,j001_digital.zip
能够以液晶字体方式显示数字的一个小控件。(15KB)
48,asbubble01.zip
几个特殊的控件,可以在程序里弹出类似于气泡的对话框(37KB)
49,formshaper.zip
无需再调用api,利用这个控件你可以把窗体设计成为任意的形状(18KB)
50,devporbu.zip
建立如同out look里的菜单条(401KB)
51,chklsb25.zip
它提供了类似 word 和 excel 中的内含检查框 ( checkbox)的列表框(listbox)。在这个控制中,每一个条目的字体、颜色、使能状态和选中状态都可以被单独设置。这个控制也支持3d外观、图片条目和定制的检查框符号(167KB)
52,rulerbar.zip
显示纵向或横向标尺的ocx控件(28KB)
53,axafx30.zip
animationfx控件显示动画效果的演示程序(143KB)
54,axtfx30.zip
transitionfx控件转换文字的演示程序(156KB)
55,display1.zip
控制显示方式的控件(71KB)
56,pwindow.zip
paint window控件(12KB)
57,actresiz.zip
改变form的大小的时候,原来form里的其他对象也会跟着放大放缩,简单但是有用!(30KB)
58,sclcon.zip
不知道你对ie里背景的水印属性有没有印象,现在你在窗体里也可以实现了(162KB)
59,submenu.zip
可以在VB中自定义弹出式子菜单(8KB)
60,zlibtool.zip
较好的一个有进度显示(26KB)
61,vfoutbar.zip
这里还有另一个控件 OutLook 风格的 BAR(39KB)
62,ovalbutton.zip
椭圆形按钮控件(8KB)
63,procbar.zip
一个漂亮进度条(可以显示百分比数字)(9KB)
64,weiqi.zip
围棋对弈程序的开发控件,可方便的开发出网络围棋对弈程序(18KB)
65,133.zip
FormShaper,定制窗体形状的控件(18KB)
66,c4.zip
翻滚文字的 ActiveX 控件(6KB)
67,FreeActiveX.zip
取消控件注册的About对话框限制(45KB)
68,Resize32.ocx
自动改变控件尺寸,在设计程序时只要在窗口上放入该控件,其它事情就由它来做喽…… (51KB)
69,transparent.ocx
可使窗体变成透明,如把控件的属性ShowNonClient设为False可使标题栏消失 (34KB)
70,AICOBUT.zip
动画图标按扭(68KB)
71,vbocx10.zip
以及窗体内的控件是否随窗体大小的改变而改变,以及设置窗体是否处于最上方,以及设置窗体是否以爆炸式方式显示(19KB)
72,Easyscroll.zip
为任何控件增加滚动条(41KB)
73,Zcg_3DLabel.zip
立体标签控件(15KB)
74,vertmenu.zip
用来制作类似Outlook那样的垂直菜单,是代替ActiveBar的不错选择。(有源代码) (280KB)
75,imgctls.zip
该控件包含两个控件,ImgListBox和ImgComboBox。它扩展了ListBox和ComboBox的功能,允许你为这两个控件中的项目添加图片(57KB)
76,boundactivex.zip
使用本控件可以使控件在程序运行时用鼠标拖动(18KB)
77,zbpicbt.zip
VB6写的浮动图形按扭控件(有源代码)(47KB)
78,zbfdbt.zip
VB6写的浮动文本按扭控件(有源代码)(21KB)
79,Polyform.zip
创建不规则窗口(有例子)(94KB)
80,eyes.zip
跟着鼠标转的眼睛控件(有源代码)(6KB)
81,resize.zip
在调整窗体大小时可以将其上的所有控件一同进行调整.免去了大量的编程代码 (37KB)
82,gvocx.zip
一个能看多种图形格式的控件(267KB)
83,flatbtn.zip
能创建类似IE风格的按钮(88KB)
84,spliter.zip
Spliter.ocx控件主要是用来在程序中切分窗口,其中包括两种分割方式:1、竖着切分2、横着切分(18KB)
85,spltrbar.zip
SpltrBar.ocx控件主要是用来在程序中切分窗口(15KB)
86,cooltoolsbar.zip
CoolToolBar v1.0.0控件类似VC的ToolBar的功能,您也可以在VB中轻松实现拖动工具栏了!(22KB)
87,flatcom.zip
平面控件组 - 有六个全平面控件(包括平面按钮、进度条、移动条、COMLIST、窗体移动栏)(42KB)
88,toolbox.zip
自编的类似VB工具箱的控件(217KB)
89,shape1.zip
任意形状窗口控件(96KB)
90,wallstreet.zip
该控件提供了一个可以左右滚动的WallStreet style ticker(51KB)
1,listview.ZIP 演示使用listview控制, 作出资源管理器中目录树中的效果 (7KB)2,dirview.ZIP 装入整个 c 盘目录到 treeview (4KB)3,progress.ZIP 演示使用win95的进度条(3KB)4,progbar.ZIP 进度条演示(4KB)5,slider.ZIP 使用滑动控制(6KB)6,statusbar.ZIP 控制状态条的例子(10KB) 7,tabstrip.ZIP tabstrip控制的例子 (10KB)8,treeview.ZIP 存储/恢复treeview的例子(10KB) 9,treelist.ZIP 使用treeview和listview显示数据库的数据 (7KB)10,combohg.ZIP 改变combobox的下拉高度(2KB) 11,dragtree.ZIP 拖拉树节点的例子(7KB) 12,lvstyles.ZIP 演示listview控制的例子(27KB) 13,make_toolbar_flat.ZIP 实现浮动工具条的例子(1KB) 14,code_coolbar.ZIP ie4风格的工具条(26KB)15,djmeter.ZIP 实现进度条的例子(10KB) 16,dupes.ZIP 一个combobox的例子(3KB) 17,formdsgn.ZIP 演示改变控件的大小和移动控件的例子(9KB)18,tvcheckboxes.ZIP treeview和checkbox的例子(9KB)19,tveventcancel.ZIP 使用treeview的简单例子(12KB) 20,tvnode-hitem.ZIP 在treeview的节点处使用图形(6KB)21,timedmsg.ZIP 对windows的标准对话框还可以加上时间限制的例子(9KB)22,browsedlg.ZIP 通过对一系列的 api 及 shell32.dll 的调用来实现 windows 各种标准浏览选择对话框。此源代码为 vb4 设计。对后来版本同样适用(8KB) 23,listtips.ZIP listbox中使每一item有不同的tip(2KB) 24,newctl.ZIP 动态创建控件的例子,解决了vb5中不能"无中生有"的毛病(2KB)25,colourdg.ZIP 调用windows的颜色对话框, 不需用到"comdlg32.ocx"(3KB) 26,clipbutton.ZIP 在我们使用 vb 的 code 编辑器时,其粘贴、复制、剪切按钮能随着当前的选择情况而进行适当的调整,本程序演示了类似的功能, 作者:jin(kenj@163.net)(3KB) 27,clipview.ZIP 使用 windows 剪贴板(16KB) 28,richedit.ZIP 利用richtext实现的编辑器(3KB) 29,srchlist.ZIP 在 list 控件里进行增量查询(4KB)30,savetree.ZIP 以文件方式保存和恢复treeview(7KB)31,kenjLV1.zip ListView的API效果演示(10KB)32,txtsrch.zip 在Text中实现快速增量查询(4KB)33,TracBar.zip 滚动条模块,与 VB 的滚动条比较,该模块支持动态生成, 支持触发消息(7KB)34,treedrag.zip TreeView 中节点拖动、增加、删除等功能演示(8KB)35,wordwrap.zip 在 TextBox 中自动换行(2KB)36,combosrc.zip 在 COMBO 中的增量查询(2KB)37,progman.zip 制作安装程序必备,此模块包含的SUB及Function能帮你做出专业的安装程序(2KB)38,messageboxdemo.zip 用API调出MessageBox框!(6KB)39,associate.zip 建立关联程序的例子。本程序演示把 .bar 文件与 NotePad建立关联(3KB)40,tbar97.zip 制作的一个类似Office97的工具栏,除了不能移动外,其他都极为相似!(24KB)41,combomagic.zip 在 COMBO 中的增量查询(3KB)42,cursortest.zip 鼠标控制演示。提供了一个鼠标控制的类,包括移动、限制隐藏等功能(4KB)43,cpu.zip 监视 CPU 使用情况的例子(4KB)44,cdfind.zip 找出系统光驱的盘符(3KB)45,up.zip 数字大写转换程序(4KB)46,ktext.zip VB编程中突破64K的文本显示限制(2KB)47,menudemo.zip 使用API改变菜单,使之具有几列,如同Windows的开始菜单一样(4KB)48,clipcur.zip 限制鼠标移动区域(2KB)49,findlist.zip 在ListBox快速搜寻字符串(5KB)50,getword.zip 读取鼠标所在位置的单词(5KB)51,filemanager.zip 文件管理器(8KB)52,mousedemo.zip 一些鼠标例子演示(3KB)53,calendar.zip 一个小小的日历程序(4KB)54,hotkey.zip VB编程中热键应用一例(3KB)55,noalt+f4.zip 去掉窗体关闭按钮 (2KB)56,cpuinf.zip 取得CPU的报告(16KB)57,viewpw.zip 密码查看器,可查看"***"的字符(7KB)58,regdemo.zip 向注册表建立关联文件(3KB)59,cipher.zip 加密/解密字符串的例子(3KB)60,browsefolders5.zip 浏览一个子目录(3KB)61,easymail.zip 文件加密/解密的例子(5KB)62,encstrings.zip 加密/解密字符串的例子(2KB)63,keybinf.zip 键盘信息报告例子(2KB)64,reginq.zip 读取注册表的例子,利用了API可读注册表中所有的项目(4KB)65,wpchanger.zip Windows墙纸更改事例 (3KB)66,vbtozip.zip 用VB压缩文件(最简单的方法)(2KB)67,anicursor.zip 演示如何使用动画光标 VB源码(7KB)68,cfdemo.zip 不用CommonDialog控件,使用API调用字体对话框 VB源码(281KB)69,cmdlgd.zip 替换 Windows 公共对话框的 DLL 和演示程序的源代码,具有HOOK 功能(86KB)70,colordlg.zip 不用CommonDialog控件,使用API调用颜色对话框 VB源码(4KB)71,commondialogs.zip Windows 公共对话框的源代码,包含文件、打印机、颜色、字体、游览对话框(7KB)72,cpuinfo.zip 得到CPU的详细信息 VB源码(16KB)73,fileprops.zip 演示如何调用 Windows 资源管理器中的文件属性对话框(7KB)74,progbar121.zip 进程杆控件的源代码。具有水平、垂直,渐变,显示文本和百分比,播放声音的功能,不会让您失望。(12KB)75,subcls328.zip 一个子类的源代码,包含菜单、MDI窗体背景等8个演示程序(46KB)76,taskbar.zip 把应用程序的图标放在任务栏的右侧,是一个控件源代码(6KB)77,vbthread.zip 用VB实现多线程 VB源码(15KB)78,ini_vb6.zip 用WindowsAPI访问INI文件(8KB)79,syshotkey.zip 创建一个系统级的热键,无论你的程序是否获得焦点热键不生效 (4KB)80,win98mi.zip Win98多显示器支持演示(31KB)81,message.zip 拦截Windows消息(8KB)82,viewdoc.zip 用系统默认程序查看并打印文档 (7KB)83,srcset.zip 改变屏幕到16位彩色的演示 (2KB)84,moduleini.zip 访问、修改INI的函数(1KB)85,listapp.zip 枚举系统正在运行的程序(包括隐含的) (5KB)86,hidebtn.zip 隐藏Win9X中任务栏上的“开始”按钮(2KB)87,win95grp.zip 获得Windows9X下开始|程序中所有的程序组(16KB)88,clipview.zip 如何查看剪贴板中的带格式文本 (42KB)89,sysinfo.zip 获得系统的信息:硬盘、显示器、内存... (3KB)90,zm.zip 取得计算机中所有Modem的名称(2KB)91,custmnu2.zip 又一个菜单的例子(5KB)92,collSRC.zip 程序收集1.0版 (214KB)93,countdown.zip 一个倒计时的程序(10KB)94,00951404.zip 利用热键操作实现一键通(55KB)95,system_v.zip 系统监视器,可以实时监视正在运行的程序,并关闭他(29KB)
前 言 visual basic继承了basic语言易学易用的特点,特别适合于初学者学习windows系统编程。随着21世纪信息社会的到来,计算机在人们的工作和生活中的深入,要求我们越来越多地与计算机打交道,为了使用户在繁忙的日程工作中得到放松,于是出现了各种各样的休闲软件,如聊天工具,游戏等等。于是我们小组着手设计开始一个这样的游戏软件。通过这学期来Visual Basic的学习,我初步掌握了Visual Basic语言的最基本的知识,于是在化希耀张兵等老师的指导下动手用Visual Basic编写俄罗斯方块游戏。 无可争议,《俄罗斯方块》是有史以来最伟大的游戏之一。它是永恒的娱乐经典,但它实际上又和那些传统的经典娱乐方式不同,因为它的本质是电子化的,所以它的确属于现代产物。《俄罗斯方块》举世闻名的游戏性,在该游戏新鲜出炉时就显得非常直观。某些与坠落的玩具碎片和它们的形状有关的东西,使得哪怕新手也会很自然地企图把它们排列起来,并加以适当组合,就好似《俄罗斯方块》触动了我们某些内在的感官,使得哪怕是我们当中最杂乱无章的人也要把事情整理妥当。 在曾经发布过的所有游戏中,《俄罗斯方块》还被认为是仅有的一个能够真正吸引广泛人群的作品。某些批评家也许会声称,《俄罗斯方块》要比过去二十年间出现的任何东西都要浪费人们的时间。至于我们,则要欣然提名它为GameSpot评选出的历史上最伟大游戏之一。 为了怀念经典,也为了能够给大多的计算机用户在工作之余找到一个休闲、娱乐的一个方式,我们小组开始着手用VB语言开发一个经典的俄罗斯方块游戏。 工程概况 1.1 项目名称 俄罗斯方块游戏 1.2 设计平台 VB 全称Visual Basic,它是以Basic语言作为其基本语言的一种可视化编程工具。 Vb是microsoft公司于1991年退出的windows应用程序开发工具visual意思是“可视化的”。在它刚推出来时,自身还存在一些缺陷,功能也相对少一些。但是经过多年的开发研究。最近microsoft公司又推出了VB6.0版本 VB6.0运行环境:硬件,要求486以上的处理器、16MB以上内存,50MB 以上的硬盘,cd-rom驱动器,鼠标。软件:要求windows 95以上版本。 1.3程序设计思想 游戏是用来给大家娱乐的,所以要能在使用的过程中给大家带来快乐,消除大家的疲劳,所以我们在游戏中添加了漂亮的场景和动听的音乐,设置了过关升级的功能,激发大家的娱乐激情。 从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我们在设计中在一个图片框中构造了一个4*4的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我们总共设计了7中造型,每种造型又可以通过旋转而变化出2到4种形状,利用随机函数在一个预览窗体中提前展示形状供用户参考,然后将展示的形状复制到游戏窗体中进行摆放,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后利用递归语句对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度是有时钟控件控制的,在游戏中,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句对分数判断,达到一定的积分就可以升级到下一个档次。 俄罗斯方块游戏设计的主要步骤为以下10个方面: (1)游戏界面的设计。 (2)俄罗斯方块的造型。 (3)俄罗斯方块的旋转。 (4)俄罗斯方块的运动情况(包括向左,向右和向下)。 (5)俄罗斯方块的自动消行功能。 (6)游戏级别的自由选择。 (7)游戏速度的自由选择。 (8)游戏得分的计算。 (9)游戏菜单选项的设计及功能实现。 (10)游戏的背景音乐。 1.4运用的控件和主要对象 我们在设计过程中主要用到的控件有:command控件,image控件,picture控件,label控件,timer控件,text控件,windows media player控件等等。 1.5主要实现的功能 我们开发的俄罗斯方块游戏,主要实现了以下几种功能: 1.可以灵活控制方块在图形框中运动。 2.游戏过程中方块可以自由旋转。 3.当某一行的方块排列满时,将自动将这一行方块消除,然后将上面所有方块向下移动,可以支持连续消行。 4.游戏前可以选择游戏的速度和游戏的等级,游戏速度既为方块下落速度,游戏等级为初始游戏时在基层随机生成一定行数的无规律方块,生成的行数由你来选择,每行至少产生5个以上的无规律方块,这样增加了游戏难度,对于游戏高手来说,无疑不是一个新的挑战。 5.游戏的得分支持积分,并且按照公式: 得分 = 原来分数+ 100 * (2 ^ 同时消除的行数-1) 这样,你同一时间消除
Dim i, j, n As Integer Dim sql As String Private Declare Function GetKeyState Lib "user32" _ (ByVal nVirtKey As Long) As Integer Public je As Integer '记忆菜单上次数值,实现数据传送 Private Sub acg_Click() Call asPopup7_Click(False) End Sub Private Sub addcg_Click() Call asPopup6_Click(False) End Sub Private Sub addstudent_Click() Call asPopup2_Click(False) End Sub Private Sub asPopup1_Click(Cancel As Boolean) Grid1.Visible = True Grid2.Visible = False tkbase = "学生信息" fnumber = 13 sql = "select * from " & tkbase grid1pz '执行grid1的分配空间任务 datagrid '按要求读取数据空间 End Sub Private Sub grid1pz() Grid1.Cols = fnumber + 1 Grid1.Column(1).Width = 120 Grid1.Column(2).Width = 100 Grid1.Column(3).Width = 80 Grid1.Column(4).Width = 40 Grid1.Column(5).Width = 80 Grid1.Column(6).Width = 30 Grid1.Column(7).Width = 100 Grid1.Column(8).Width = 200 Grid1.Column(9).Width = 60 Grid1.Column(10).Width = 80 Grid1.Column(11).Width = 100 Grid1.Column(12).Width = 100 Grid1.Column(13).Width = 100 Grid1.Column(4).CellType = cellComboBox Grid1.ComboBox(4).Clear Grid1.ComboBox(4).AddItem "男" Grid1.ComboBox(4).AddItem "女" Grid1.Column(5).CellType = cellCalendar Grid1.Column(1).Locked = True End Sub Private Sub asPopup2_Click(Cancel As Boolean) Grid1.Visible = True Grid2.Visible = False tkbase = "学生信息" fnumber = 13 Set qy1 = cnn.Execute("select * from " & tkbase) grid1pz For i = 1 To fnumber Grid1.Cell(0, i).Text = qy1.Fields(i - 1).Name Next Grid1.Column(1).Locked = False Grid1.Rows = 1 Grid1.Rows = 21 gridsave = True '允许保存 griddelete = False '拒绝删除 gridedit = False End Sub Private Sub asPopup3_Click(Cancel As Boolean) Dim fo2 As CTranslucentForm Set fo2 = New CTranslucentForm fo2.hWnd = Form2.hWnd fo2.Alpha = 90 / 100 * 255 Me.WindowState = vbMinimized Load Form2 Form2.Show 1 End Sub Private Sub asPopup4_Click(Cancel As Boolean) Dim fo2 As CTranslucentForm Set fo2 = New CTranslucentForm fo2.hWnd = Form4.hWnd fo2.Alpha = 90 / 100 * 255 Me.WindowState = vbMinimized Load Form4 Form4.Show 1 End Sub Private Sub asPopup5_Click(Cancel As Boolean) MsgBox "非完整源码不可查询!" End Sub Private Sub asPopup6_Click(Cancel As Boolean) Grid1.Visible = False Grid2.Visible = True tkbase = "学生与课程" fnumber = 5 gridpz2 Set qy1 = cnn.Execute("select * from " & tkbase) For i = 1 To fnumber Grid2.Cell(0, i).Text = qy1.Fields(i - 1).Name Next Grid2.Rows = 1 Grid2.Rows = 21 gridsave = True gridedit = False griddel = False Grid2.Column(1).Locked = False Grid2.Column(2).Locked = False Grid2.Column(3).Locked = False End Sub Private Sub asPopup7_Click(Cancel As Boolean) Grid1.Visible = False Grid2.Visible = True tkbase = "学生与课程" fnumber = 5 sql = "select * from " & tkbase gridpz2 datagrid gridsave = False gridedit = True griddel = True Grid2.Column(1).Locked = True Grid2.Column(2).Locked = True Grid2.Column(3).Locked = True End Sub Private Sub gridpz2() Grid2.Cols = 7 Grid2.Column(1).CellType = cellComboBox Set qy1 = cnn.Execute("select 课程号 from 课程") Grid2.ComboBox(1).Clear Do While Not qy1.EOF Grid2.ComboBox(1).AddItem qy1.Fields(0) qy1.MoveNext Loop Grid2.Column(2).CellType = cellComboBox Set qy1 = cnn.Execute("select 课程名称 from 课程") Grid2.ComboBox(2).Clear Do While Not qy1.EOF Grid2.ComboBox(2).AddItem qy1.Fields(0) qy1.MoveNext Loop End Sub Private Sub asPopup9_Click(Cancel As Boolean) End End Sub Private Sub c1_Click(Index As Integer) '提交内容到函数执行,4为当前菜单(0-4),index是按钮数组名称 cmove 4, Index End Sub Private Sub cmove(s As Integer, i As Integer) '菜单智能移动函数代码 Dim j As Integer Dim X, Y, z, x1, y1 As Integer X = s Y = s z = s x1 = s j = 0 Do While s > 0 If je > i Then Do While X > i Do While Y >= X j = j + 360 Y = Y - 1 Loop c1(X).Top = Fre1.Height - j X = X - 1 Loop Else '-----------------向上代码 For X = 0 To i For Y = 0 To X j = j + 360 Next c1(X).Top = j - 360 j = 0 Next End If s = s - 1 For y1 = 0 To x1 If y1 = i Then Fre2(y1).Visible = True Fre2(y1).Top = c1(y1).Top + c1(y1).Height If y1 <> z Then Fre2(y1).Height = c1(y1 + 1).Top - Fre2(y1).Top Else Fre2(y1).Height = Fre1.Height - c1(y1).Top - c1(y1).Height End If Else Fre2(y1).Visible = False End If Next Loop je = i End Sub Private Sub cgdel_Click() Call XPButton6_Click End Sub Private Sub cgedit_Click() Call XPButton4_Click End Sub Private Sub delstudent_Click() Call XPButton6_Click End Sub Private Sub editstudent_Click() Call XPButton4_Click End Sub Private Sub findcg_Click() If hang = 0 Then Exit Sub End If Grid1.Visible = False Grid2.Visible = True tkbase = "学生与课程" fnumber = 5 sql = "select * from 学生与课程 where 学号='" & Grid1.Cell(hang, 1).Text & "'" gridpz2 datagrid gridsave = False gridedit = True griddel = True Grid2.Column(1).Locked = True Grid2.Column(2).Locked = True Grid2.Column(3).Locked = True End Sub Private Sub Grid1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then PopupMenu student End If End Sub Private Sub Grid1_RowColChange(ByVal Row As Long, ByVal Col As Long) hang = Row If gridsave = True And Col = 5 Then '确认默认年龄在20岁左右 If Row <> 0 Then Grid1.Cell(Row, 5).Text = Date - 7300 End If End If End Sub Private Sub Grid1_Validate(Cancel As Boolean) '设定TAB键切换 Dim nActiveRow As Long, nActiveCol As Long Const VK_TAB = 9 If GetKeyState(VK_TAB) < 0 Then nActiveRow = Grid1.ActiveCell.Row nActiveCol = Grid1.ActiveCell.Col If nActiveCol < Grid1.Cols - 1 Then Grid1.Range(nActiveRow, nActiveCol + 1, _ nActiveRow, nActiveCol + 1).Selected End If Cancel = True End If End Sub Private Sub Form_Load() form1.BackColor = RGB(168, 217, 189) With Grid1 .AllowUserResizing = True .DisplayFocusRect = False .ExtendLastCol = True .Appearance = Flat .FixedRowColStyle = Flat .ScrollBarStyle = Flat .DefaultFont.Name = "Tahoma" .DefaultFont.Size = 8 .BackColorFixed = RGB(84, 201, 134) .BackColorFixedSel = RGB(84, 201, 134) .BackColorBkg = RGB(198, 229, 211) .BackColorScrollBar = RGB(198, 229, 211) .BackColor1 = RGB(231, 235, 247) .BackColor2 = RGB(198, 229, 211) .GridColor = RGB(148, 190, 231) .Column(0).Width = 0 End With With Grid2 .AllowUserResizing = True .DisplayFocusRect = False .ExtendLastCol = True .Appearance = Flat .FixedRowColStyle = Flat .ScrollBarStyle = Flat .AllowUserResizing = True .DisplayFocusRect = False .ExtendLastCol = True .Appearance = Flat .FixedRowColStyle = Flat .ScrollBarStyle = Flat .DefaultFont.Name = "Tahoma" .DefaultFont.Size = 8 .BackColorFixed = RGB(84, 201, 134) .BackColorFixedSel = RGB(84, 201, 134) .BackColorBkg = RGB(198, 229, 211) .BackColorScrollBar = RGB(198, 229, 211) .BackColor1 = RGB(231, 235, 247) .BackColor2 = RGB(198, 229, 211) .GridColor = RGB(148, 190, 231) .Column(0).Width = 0 End With je = 4 Dim fr As Integer Fre1.BackColor = RGB(168, 217, 189) For fr = 0 To 4 Fre2(fr).Visible = False Fre2(fr).BackColor = RGB(168, 217, 189) Next Grid2.Visible = False Call c1_Click(0) End Sub Private Sub Grid2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then MsgBox "非完整源码不支持鼠标右键!" End If End Sub Private Sub Grid2_RowColChange(ByVal Row As Long, ByVal Col As Long) hang = Row End Sub Private Sub datagrid() griddelete = True '允许删除 gridedit = True If tkbase = "学生信息" Then If qy1.State = adStateOpen Then '表状态 qy1.Close End If qy1.Open sql, cnn, adOpenStatic, adLockReadOnly, adCmdText For i = 1 To fnumber Grid1.Cell(0, i).Text = qy1.Fields(i - 1).Name Next qy1.PageSize = 20 nnum = qy1.PageCount If qy1.PageCount = 0 Then nnum = 1 End If numpage = 1 Label1.Caption = "共" & nnum & "页 第" & numpage & "页" Grid1.Rows = 1 Grid1.Rows = 21 If qy1.RecordCount = 0 Then Exit Sub End If qy1.AbsolutePage = numpage For i = 1 To qy1.PageSize '设定读取行 For j = 1 To fnumber '设定读取列 If qy1.EOF = True Then Exit Sub End If If qy1.Fields(j - 1) <> noNull Then '空值的处理 Grid1.Cell(i, j).Text = qy1.Fields(j - 1) Else Grid1.Cell(i, j).Text = "" End If Next If qy1.EOF = False Then qy1.MoveNext '读取下一记录 Else Exit Sub End If Next ElseIf tkbase = "学生与课程" Then If qy1.State = adStateOpen Then '表状态 qy1.Close End If qy1.Open sql, cnn, adOpenStatic, adLockReadOnly, adCmdText For i = 1 To fnumber Grid2.Cell(0, i).Text = qy1.Fields(i - 1).Name Next qy1.PageSize = 20 nnum = qy1.PageCount If qy1.PageCount = 0 Then nnum = 1 End If numpage = 1 Label1.Caption = "共" & nnum & "页 第" & numpage & "页" Grid2.Rows = 1 Grid2.Rows = 21 If qy1.RecordCount = 0 Then Exit Sub End If qy1.AbsolutePage = numpage For i = 1 To qy1.PageSize '设定读取行 For j = 1 To fnumber '设定读取列 If qy1.EOF = True Then Exit Sub End If If qy1.Fields(j - 1) <> noNull Then '空值的处理 Grid2.Cell(i, j).Text = qy1.Fields(j - 1) Else Grid2.Cell(i, j).Text = "" End If Next If qy1.EOF = False Then qy1.MoveNext '读取下一记录 Else Exit Sub End If Next End If End Sub Private Sub Grid2_Validate(Cancel As Boolean) Dim nActiveRow As Long, nActiveCol As Long Const VK_TAB = 9 If GetKeyState(VK_TAB) < 0 Then nActiveRow = Grid1.ActiveCell.Row nActiveCol = Grid1.ActiveCell.Col If nActiveCol < Grid1.Cols - 1 Then Grid1.Range(nActiveRow, nActiveCol + 1, _ nActiveRow, nActiveCol + 1).Selected End If Cancel = True End If End Sub Private Sub renovate_Click() Call asPopup1_Click(False) End Sub Private Sub returncg_Click() Grid1.Visible = True Grid2.Visible = False End Sub Private Sub savestudent_Click() Call XPButton5_Click End Sub Private Sub XPButton1_Click() MsgBox "非完整源码只可显示20条记录!" End Sub Private Sub XPButton2_Click() MsgBox "非完整源码只可显示20条记录!" End Sub Private Sub XPButton4_Click() If gridedit = False Then MsgBox "当前修改操作不被允许!", vbInformation, "非使用对象" Exit Sub End If If hang = 0 Then Exit Sub End If Dim delok As String End Sub Private Sub XPButton5_Click() If tkbase = "" Then MsgBox "表指向不明,请确认", vbInformation, "提示" Exit Sub End If If gridsave = False Then MsgBox "当前不允许保存!", vbInformation, "提示" Exit Sub End If Select Case tkbase Case "学生信息" For i = 1 To 20 '处理重名数据 If Grid1.Cell(i, 1).Text <> "" Then Set qy1 = cnn.Execute("select 学号 from 学生信息 where 学号='" & Grid1.Cell(i, 1).Text & "'") If qy1.EOF = False Then MsgBox "第" & i & "行的学号在数据库里出现重复,请检查", vbInformation, "错误" Grid1.Cell(i, 1).SetFocus Exit Sub End If End If Next For i = 1 To 20 For n = 1 To fnumber Select Case n Case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 If Grid1.Cell(i, 1).Text <> "" Then If Grid1.Cell(i, n).Text = "" Then MsgBox "第" & i & "行的--[" & Grid1.Cell(0, n).Text & "]--字段不允许为空!", vbInformation, "提示" Grid1.Cell(i, n).SetFocus Exit Sub End If End If End Select Next If Grid1.Cell(i, 1).Text <> "" Then sql = "insert into " & tkbase & " values('" For j = 1 To fnumber - 1 sql = sql & Grid1.Cell(i, j).Text & "','" Next sql = sql & Grid1.Cell(i, fnumber).Text & "')" Set qy1 = cnn.Execute(sql) End If Next MsgBox "命令执行完毕!", vbInformation, "完成" Grid1.Rows = 1 Grid1.Rows = 21 Case "学生与课程" MsgBox "非完整源码不可保证学生与课程的记录!" End Select gridsave = False griddelete = False '拒绝删除 gridedit = False End Sub Private Sub XPButton6_Click() If griddelete = False Then MsgBox "当前删除操作不被允许!", vbInformation, "非使用对象" Exit Sub End If If hang = 0 Then Exit Sub End If Dim delok As String Select Case tkbase Case "学生信息" MsgBox "非完整源码不可修改!" Case "学生与课程" If Grid2.Cell(hang, 1).Text = "" Then Exit Sub End If delok = MsgBox("确认删除" & Grid2.Cell(hang, 3).Text & "的<" & Grid2.Cell(hang, 2).Text & ">成绩吗??", vbQuestion + vbOKCancel, "注意:此操作将会将学生资料与成绩资料完全清除") If delok = vbOK Then sql = "delete from " & tkbase & " where 学号='" & Grid2.Cell(hang, 3).Text & "' and 课程号='" & Grid2.Cell(hang, 1).Text & "'" Set qy1 = cnn.Execute(sql) MsgBox "目标己删除完成!", , "提示" End If End Select End Sub Private Sub XPButton8_Click(Index As Integer) Call findcg_Click End Sub

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧