用VB6.0实现将窗体最小化到系统托盘区

上传人:ths****59 文档编号:57622702 上传时间:2018-10-23 格式:DOC 页数:4 大小:34.50KB
返回 下载 相关 举报
用VB6.0实现将窗体最小化到系统托盘区_第1页
第1页 / 共4页
用VB6.0实现将窗体最小化到系统托盘区_第2页
第2页 / 共4页
用VB6.0实现将窗体最小化到系统托盘区_第3页
第3页 / 共4页
用VB6.0实现将窗体最小化到系统托盘区_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《用VB6.0实现将窗体最小化到系统托盘区》由会员分享,可在线阅读,更多相关《用VB6.0实现将窗体最小化到系统托盘区(4页珍藏版)》请在金锄头文库上搜索。

1、用 VB6.0 实现将窗体最小化到系统托盘区使用说明:共有两个方法,经个人实际测试(环境:xpsp3 vb6.0)第二个控件法最有效果, 第一个方法在启动时确实在右下角,但是弹出后再次最小化就跑到屏幕左下角了,无法最 小化,不知道是啥原因,希望大家改进代码。 本人力荐第二种小巧有效简单的方法。方法一(作者方法一(作者: :zheng0823zheng0823 )APIAPI 法法 经测试部分有效经测试部分有效1、新建立一个 VB6 工程,将 Form1 的 ShowInTaskBar 属性设置为 False 2、菜单:工程-添加模块 按“打开”这样就添加了一个新模块,名为 Module1,保存

2、为 Module1.bas 3、在 Module1 中写下如下代码: Option Explicit Public Const MAX_TOOLTIP As Integer = 64 Public Const NIF_ICON = &H2 Public Const NIF_MESSAGE = &H1 Public Const NIF_TIP = &H4 Public Const NIM_ADD = &H0 Public Const NIM_DELETE = &H2 Public Const WM_MOUSEMOVE = &H200 Public Const WM_LBUTTONDOWN = &

3、H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_RBUTTONUP = &H205 Public Const WM_RBUTTONDBLCLK = &H206Public Const SW_RESTORE = 9 Public Const SW_HIDE = 0 Public nfIconData As NOTIFYICONDATA Public Type NOTIFYICONDATA

4、cbSize As Long hWnd As Long uID As Long uFlags As Long uCallbackMessage As Long hIcon As Long szTip As String * MAX_TOOLTIP End TypePublic Declare Function ShowWindow Lib “user32“ (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Public Declare Function Shell_NotifyIcon Lib “shell32.dll“ Alias “S

5、hell_NotifyIconA“ (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long4、在 Form1 的 Load 事件中写下如下代码:Private Sub Form_Load() 以下把程序放入 System Tray=System Tray Begin With nfIconData.hWnd = Me.hWnd.uID = Me.Icon.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP.uCallbackMessage = WM_MOUSEMOVE.hIcon = Me.Ic

6、on.Handle定义鼠标移动到托盘上时显示的 Tip.szTip = App.Title + “(版本 “ & App.Major & “.“ & App.Minor & “.“ & App.Revision & “)“ & vbNullChar.cbSize = Len(nfIconData) End With Call Shell_NotifyIcon(NIM_ADD, nfIconData) =System Tray End Me.Hide End Sub5、在 Form1 的 QueryUnload 事件中写入如下代码: Private Sub Form_QueryUnload(Ca

7、ncel As Integer, UnloadMode As Integer) Call Shell_NotifyIcon(NIM_DELETE, nfIconData) End Sub6、在 Form1 的 MouseMove 事件中写下如下代码:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim lMsg As Single lMsg = X / Screen.TwipsPerPixelX Select Case lMsgCase WM_LBUTTONUP

8、MsgBox “请用鼠标右键点击图标!“, vbInformation, “实时播音专家“单击左键,显示窗体ShowWindow Me.hWnd, SW_RESTORE下面两句的目的是把窗口显示在窗口最顶层Me.ShowMe.SetFocus Case WM_RBUTTONUP PopupMenu MenuTray 如果是在系统 Tray 图标上点右键,则弹出菜单 MenuTray Case WM_MOUSEMOVE Case WM_LBUTTONDOWN Case WM_LBUTTONDBLCLK Case WM_RBUTTONDOWN Case WM_RBUTTONDBLCLK Case

9、Else End Select End Sub 7、现在将程序保存起来运行看看系统托盘处是否增加了一个本工程的图标。单击此图标, Form1 就自动弹出来了。-华丽丽的分割线-方法二(作者方法二(作者: :桃花源居民 ) 控件法控件法 经测试完全有效经测试完全有效托盘,亦即程序最小化后程序图标隐藏到屏幕右下角的任务栏里。这种最小化方法比 普通的最小化节约空间,因此备受欢迎,很多软件都具有这样的功能。在 VB 中,可用 API 函数来实现托盘功能,但比较复杂,不太好操作。相对而言采用一种非常简单易行的方法:控件法,才是最适合最方便的。下面要使用 已被微软封装好的控件:csystray1(名称可自

10、定)。说到控件,大家可能要皱眉头了:去哪找呀?放心!这个控件就躺在你的 VB 安装盘 里(目录为:COMMONTOOLSVBUNSUPPRTSYSTRAY)!不过,得处理一下:请在 Tool 文件夹里查找一个名叫 Systray 的目录,将它拷贝到硬盘,用 VB 打开该目录下的工 程,必要的话可作些改进(如更换图标、添加功能等),然后编译成 ocx 控件,可以随意 命名。为方便使用起见,最好编译到 WindowsSystem 目录下。好了,现在我们就可以在 我们的程序中使用此控件来轻松实现托盘功能了。vb 中添加控件的方法就不用我说了吧?控件的属性和事件浅析:该控件的 InTray 属性是用来

11、设置是否显示在托盘中,True 为显示在托盘,False 为不 显示;该控件的 TrayIcon 属性是在托盘中显示的图标式样;该控件的 TrayTip 属性是鼠标移动到该控件上面时,显示的提示文字;该控件的重要事件是几个我们常用的鼠标事件:按下、放开、移动、双击,编程时就 是利用这些事件达到在任务栏中控制程序的目的。源代码如下:使程序最小化时显示到系统托盘 Private Sub Form_Resize() If Me.WindowState = 1 Then 如程序为最小化则 cSysTray1.InTray = True 隐藏到任务栏 Me.Visible = False 让程序界面不可见 End If End Sub点击托盘图标后,让程序窗体显示出来 Private Sub CsysTray1_MouseDown(Button As Integer, Id As Long) Me.WindowState = 0 程序回复到 Normal 状态 Me.Visible = True 从任务栏中清除图标 cSysTray1.InTray = False 令程序界面可见 Me.setfocus End Sub

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号