VB6实例.docx

上传人:b****7 文档编号:23775954 上传时间:2023-05-20 格式:DOCX 页数:68 大小:275.14KB
下载 相关 举报
VB6实例.docx_第1页
第1页 / 共68页
VB6实例.docx_第2页
第2页 / 共68页
VB6实例.docx_第3页
第3页 / 共68页
VB6实例.docx_第4页
第4页 / 共68页
VB6实例.docx_第5页
第5页 / 共68页
点击查看更多>>
下载资源
资源描述

VB6实例.docx

《VB6实例.docx》由会员分享,可在线阅读,更多相关《VB6实例.docx(68页珍藏版)》请在冰豆网上搜索。

VB6实例.docx

VB6实例

VB6如何在托盘中写入应用程序图标

  1、新建立一个VB6工程,将Form1的ShowInTaskBar属性设置为False

  2、菜单:

工程--添加模块按“打开”这样就添加了一个新模块,名为Module1,保存为Module1.bas

  3、在Module1中写下如下代码:

OptionExplicit

PublicConstMAX_TOOLTIPAsInteger=64

PublicConstNIF_ICON=&H2

PublicConstNIF_MESSAGE=&H1

PublicConstNIF_TIP=&H4

PublicConstNIM_ADD=&H0

PublicConstNIM_DELETE=&H2

PublicConstWM_MOUSEMOVE=&H200

PublicConstWM_LBUTTONDOWN=&H201

PublicConstWM_LBUTTONUP=&H202

PublicConstWM_LBUTTONDBLCLK=&H203

PublicConstWM_RBUTTONDOWN=&H204

PublicConstWM_RBUTTONUP=&H205

PublicConstWM_RBUTTONDBLCLK=&H206

PublicConstSW_RESTORE=9

PublicConstSW_HIDE=0

PublicnfIconDataAsNOTIFYICONDATA

PublicTypeNOTIFYICONDATA

 cbSizeAsLong

 hWndAsLong

 uIDAsLong

 uFlagsAsLong

 uCallbackMessageAsLong

 hIconAsLong

 szTipAsString*MAX_TOOLTIP

EndType

PublicDeclareFunctionShowWindowLib"user32"(ByValhWndAsLong,ByValnCmdShowAsLong)AsLong

PublicDeclareFunctionShell_NotifyIconLib"shell32.dll"Alias"Shell_NotifyIconA"(ByValdwMessageAsLong,lpDataAsNOTIFYICONDATA)AsLong

  4、在Form1的Load事件中写下如下代码:

PrivateSubForm_Load()

 '以下把程序放入SystemTray====================================SystemTrayBegin

 WithnfIconData

  .hWnd=Me.hWnd

  .uID=Me.Icon

  .uFlags=NIF_ICONOrNIF_MESSAGEOrNIF_TIP

  .uCallbackMessage=WM_MOUSEMOVE

  .hIcon=Me.Icon.Handle

  '定义鼠标移动到托盘上时显示的Tip

  .szTip=App.Title+"(版本"&App.Major&"."&App.Minor&"."&App.Revision&")"&vbNullChar

  .cbSize=Len(nfIconData)

 EndWith

 CallShell_NotifyIcon(NIM_ADD,nfIconData)

 '=============================================================SystemTrayEnd

 Me.Hide

EndSub

  5、在Form1的QueryUnload事件中写入如下代码:

PrivateSubForm_QueryUnload(CancelAsInteger,UnloadModeAsInteger)

CallShell_NotifyIcon(NIM_DELETE,nfIconData)

EndSub

  6、在Form1的MouseMove事件中写下如下代码:

PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

 DimlMsgAsSingle

 lMsg=X/Screen.TwipsPerPixelX

 SelectCaselMsg

  CaseWM_LBUTTONUP

   'MsgBox"请用鼠标右键点击图标!

",vbInformation,"实时播音专家"

   '单击左键,显示窗体

   ShowWindowMe.hWnd,SW_RESTORE

   '下面两句的目的是把窗口显示在窗口最顶层

   'Me.Show

   'Me.SetFocus

   ''CaseWM_RBUTTONUP

   ''PopupMenuMenuTray'如果是在系统Tray图标上点右键,则弹出菜单MenuTray

   ''CaseWM_MOUSEMOVE

   ''CaseWM_LBUTTONDOWN

   ''CaseWM_LBUTTONDBLCLK

   ''CaseWM_RBUTTONDOWN

   ''CaseWM_RBUTTONDBLCLK

   ''CaseElse

 EndSelect

EndSub

  7、现在将程序保存起来运行看看系统托盘处是否增加了一个本工程的图标。

单击此图标,Form1就自动弹出来了。

将个性化进行到底VB中打造个性进度条

2005-03-2613:

28作者:

伍学慧出处:

天极网责任编辑:

方舟

  控件下载

  简介

  

  VB的第三方控件ccrpProgressBar是一个进度条的控件,可以有多种形态供选择。

比起VB中自带的进度条控件ProgressBar更有个性。

  使用实例:

  用ccrpProgressBar制作各式各样的进度条

  在VB中自带了一个进度条控件ProgressBar,但功能简单。

我向大家推荐一个VB的第三方进度条控件ccrpProgressBar。

该控件功能强大,有多种形态供选择,而且只需要简单的设置控件的属性就能实现,非常的好用。

下面通过一个例子向大家介绍该控件的用法。

  

(1)加载控件

  启动VisualBasic6.0,创建一个工程并保存为"工程1.vbp",同时产生一个名为"Form1"的窗口。

在工具箱的空白处单击鼠标右键,从弹出的快捷菜单中启动"部件"窗口,如图1所示。

图1

  点击"浏览"按钮,从存放ccrpProgressBar控件的文件夹中找到ccrpprg.ocx文件。

  点击"应用"后ccrpProgressBar控件就添加到工具箱中。

如图2。

图2

  

(2)设计窗体和控件

  向窗体中添加9个ccrpProgressBar控件和一个Timer控件。

如图3。

图3

  Timer控件属性页的设置如图4所示。

Interval的值设置为100,与ccrpProgressBar控件的默认值一致。

Enabled设置为False。

图4

  (3)ccrpProgressBar控件的主要属性

  ·Max:

最大值。

默认100。

  ·Min:

最小值。

默认0。

  ·Value:

进度条的当前值。

  ·Alignment:

显示表示进度的文字的位置。

分别为vbCenter(中间),vbLeftJustify(左边),vbRightJustify(右边)。

  ·Appearance:

进度条的3种外观。

分别为prgFlat(平面),prg3D(立体)prg3Draised(立体凸起)。

  ·BackColor:

进度条的背景色。

  ·FillColor:

进度条的颜色。

  ·ForeColor:

表示进度文字的字体颜色。

  ·Picture:

进度条可用图片表示进度,从这里选择需要的图片。

  ·Shape:

进度条的形状。

有prgRectangle(默认),prgEllipse和prgRoundedRect三种。

  ·Smooth:

是否平滑显示进度。

True为平滑显示进度。

  ·Vertical:

是否垂直显示进度条。

True为垂直显示。

  ·Style:

进度条的风格。

当选ChkGraphical时为用图片表示进度。

  ·AutoCaption:

表示进度的"文字提示"所采用的表现形式。

CcrpPercentage为百分比的形式,ccrpValueOfMax为类似1of100的表现形式。

Value为数字的表现形式。

  (4)本例中ccrpProgressBar控件属性的具体设置

  本例中共使用了9个ccrpProgressBar控件,每个ccrpProgressBar控件的具体设置如下:

  1.CcrpProgressBar1:

保持属性各项不变。

  2.CcrpProgressBar2:

Appearance的值设置为prg3D(表示用立体外观)。

  3.CcrpProgressBar3:

Appearance的值设置为prg3Draised(立体凸起),AutoCaption设为ccrpPercentage(百分比的形式表示进度),Alignment设为vbLeftJustify(表示进度的文字靠左)。

  4.CcrpProgressBar4:

BorderStyle设置为ccrpFixedSingle,AutoCaption设为ccrpPercentage(百分比的形式表示进度),Alignment设置为vbCenter(表示进度的文字在中间)

  5.CcrpProgressBar5:

Style设置为chkGraphical(用图片来表示进度)。

单击"Picture"属性,选择你准备好的图片。

同样,AutoCaption也设为百分比的形式表示进度,不过这次Alignment的值设置为vbRightJustify(进度文字靠右)。

  6.CcrpProgressBar6:

Shape设置为prgEllipse(椭圆型),AutoCaption设为ccrpValueOfMax(文字以类似1of100的表现形式)

  7.CcrpProgressBar7:

Shape设置为prgRoundedRect(圆角矩形),AutoCaption设为ccrpValue(数字形式)。

  8.CcrpProgressBar8:

Vertical设置为True,表示垂直显示进度条。

Smooth设置为True,表示平滑显示进度。

  9.CcrpProgressBar9:

Vertical属性同8的设置,不过这回给它加上百分比显示,AutoCaption设为ccrpPercentage。

  然后再分别调整好9个CcrpProgressBar控件的FillColor和ForeColor属性,搭配好颜色。

使界面更协调。

  (5)编写代码

  设置好控件的属性后,在程序中加入以下代码,完成进度条的功能。

DimiAsInteger

PrivateSubForm_Load()

 Timer1.Enabled=True

 '2个垂直显示的进度条的位置

 WithccrpProgressBar8

  .Left=5280

  .Top=360

  .Height=3800

  .Width=396

 EndWith

 WithccrpProgressBar9

  .Left=6200

  .Top=360

  .Height=3800

  .Width=396

 EndWith

EndSub

PrivateSubTimer1_Timer()

 Ifi=100Then

  End

 EndIf

 ccrpProgressBar1.Value=i

 ccrpProgressBar2.Value=i

 ccrpProgressBar3.Value=i

 ccrpProgressBar4.Value=i

 ccrpProgressBar5.Value=i

 ccrpProgressBar6.Value=i

 ccrpProgressBar7.Value=i

 ccrpProgressBar8.Value=i

 ccrpProgressBar9.Value=i

 i=i+1'变量i自增

EndSub

  运行程序,运行中的效果如图5所示。

用VB打造“超酷”个性化菜单

  众所周知,MSOffice2003推出已经有一段时间了,但我们依然不会忘记OfficeXP刚刚推出时其令人耳目一新的菜单给我们留下的深刻印象。

突起的悬浮式图标,不同寻常的菜单项填充方式,不仅让办公一族们赞不绝口,更让广大的程序员和编程爱好者对这种风格的菜单的制作产生了浓厚的兴趣。

所以,在这篇文章里,我们就来好好地研究研究用VB怎么制作这种风格的菜单,在文章的最后,我将给出源代码的下载地址。

事实上,在了解其原理以后,不论是用VB、VC还是Delphi,都能够制作出XP风格的菜单。

不仅如此,我们还可以制作出更加充满个性的另类风格的菜单,比如3D立体风格、渐变风格、多彩风格等等。

只有想不到的,没有做不到的。

Followme!

  现在,我想有必要说一说我们现在要做的事情。

事实上,我们只要做一个菜单类就行了。

但谁都会明白,只做一个菜单类是不够的,我们需要一个程序,或者更详细的说,是一个窗体,来测试我们的菜单类。

在我个人的开发过程中,我是先写的菜单类,后写的测试窗体,但为了让大家先领略一下写好的菜单类在应用时是多么的方便,所以让我们先来看看测试窗体:

  

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

  

(2)--下面是窗体的控件:

组件名称

属性

Form

Name

frmMain

Caption

菜单例子

Frame

Name

fraStyle

Caption

菜单风格

Label

Name

lblHelp

Caption

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

OptionButton

Name

opnStyle

Caption

Window标准

Index

0

OptionButton

Name

opnStyle

Caption

XP风格

Index

1

OptionButton

Name

opnStyle

Caption

3D立体风格

Index

2

OptionButton

Name

opnStyle

Caption

渐变风格

Index

3

OptionButton

Name

opnStyle

Caption

多彩风格

Index

4

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

  (3)窗体代码:

OptionExplicit

PrivateDeclareFunctionGetCursorPosLib"user32.dll"(lpPointAsPOINTAPI)AsLong

PrivateTypePOINTAPI

 XAsLong

 YAsLong

EndType

DimmenuAscMenu

PrivateSubForm_Load()

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

 Setmenu=NewcMenu

 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

EndSub

PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)

 '单击鼠标右建弹出菜单

 IfButton=vbRightButtonThen

  DimposAsPOINTAPI

  GetCursorPospos

  menu.PopupMenupos.X,pos.Y,POPUP_LEFTALIGNOrPOPUP_TOPALIGN

 EndIf

EndSub

PrivateSubForm_Unload(CancelAsInteger)

 '释放资源,卸载窗体

 Setmenu=Nothing

 DimfrmAsForm

 ForEachfrmInForms

  Unloadfrm

 Next

EndSub

PrivateSubopnStyle_Click(IndexAsInteger)

 '设置菜单风格

 SelectCaseIndex

  Case0'Windows标准

   menu.Style=STYLE_WINDOWS

  Case1'XP风格

   menu.Style=STYLE_XP

  Case2'3D立体风格

   menu.Style=STYLE_3D

  Case3'渐变风格

   menu.Style=STYLE_SHADE

  Case4'多彩风格

   menu.Style=STYLE_COLORFUL

 EndSelect

EndSub

  代码中创建了一个cMenu类的对象,我们的编程重点将会放在cMenu类上,上面的代码只是简单地调用cMenu。

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

  (4)运行结果:

        图1

         图2

         图3

         图4

         图5

  下面我们来创建接收消息的窗体:

打开上面建好的工程,添加一个窗体,并将其名称设置为frmMenu(注意:

这一步是必须的)。

图5菜单左边那个黑底色的附加条,为了方便,将frmMenu的Picture属性设置成图5。

到此,这个窗体就算OK了!

对了,就这样,因为这个窗体仅仅是为了处理消息和存储那个黑底色的风格条,我们将会对它进行子类处理,处理消息的代码全部都放在了将在下面详细介绍的标准模块中。

  接下来添加一个类模块,并将其名称设置为cMenu,代码如下:

'***************************************************************

'*本类模块是一个菜单类,提供了各种样式的菜单的制作方案

'*

'*版权:

LPP软件工作室

'*作者:

卢培培(goodname008)

'*(*******复制请保留以上信息*******)

'*********************************************************************

OptionExplicit

PrivateDeclareFunctionTrackPopupMenuLib"user32"(ByValhMenuAsLong,ByValwFlagsAsLong,ByValxAsLong,ByValyAsLong,ByValnReservedAsLong,ByValhwndAsLong,lprcAsAny)AsLong

PublicEnumMenuUserStyle'菜单总体风格

 STYLE_WINDOWS

 STYLE_XP

 STYLE_SHADE

 STYLE_3D

 STYLE_COLORFUL

EndEnum

PublicEnumMenuSeparatorStyle'菜单分隔条风格

 MSS_SOLID

 MSS_DASH

 MSS_DOT

 MSS_DASDOT

 MSS_DASHDOTDOT

 MSS

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1