【VB开源代码栏目提醒】:网学会员为需要VB开源代码的朋友们搜集整理了VB编写托盘程序 - 计算机教材相关资料,希望对各位网友有所帮助!
//////////////////////////////////////////////////////////////////// 这是我做的第四个vb api编程的例子了 都是一些大家在软件中经常看到的功 能,不知道大家喜不喜欢 希望对大家有所帮助 也非常希望你们对我的教程有 不满意的到论坛提出建议................ 这个例子是调用ShellAPI的Shell_NotifyIcon函数完成的 Public Declare Function Shell_NotifyIcon Lib shell32.dll ByVal dwMessage As Long lpData As NOTIFYICONDATA As Long 其中dwMessage 有三种取值:NIM_ADD、NIM_DELETE和NIM_MODIFY ,分别表示添加、删除和修改指定的托盘区域中的图标; lpData是一个指向NOTIFYICONDATA结构的指针,NOTIFYICONDATA的 结构如下: Public Type NOTIFYICONDATAcbsize as long 结构所占字节数 hw nd as long 处理返回消息机制的窗口句柄 uid as long 定义的图标识 别符 uflags as long 标志 ucallbackmessage as long 用户定义的消 息 hicon as long 托盘中所显示图标的句柄 sztip as string 64 提示文本 End Type 本例子需要一个按钮控件 以及PopupMenu就是那个下拉菜单 请看演示: 界面已经设计好了 下面对各个控件添加代码 好了 我们测试以下 因为时间 关系所以不能解释所有代码的意思 希望你们有什么不明白的可以上网查询 也可以向我提出 这个地方要根据我们刚才设置的名字来得 If lMsg WM_RBUTTONUP Then PopupMenu file 右健单击弹出菜单 //////////////////////////////////////////////////////////////////// 程序完整代码如下: 声明部分 Private Declare Function Shell_NotifyIcon Lib shell32.dll Alias Shell_NotifyIconA _ ByVal dwMessage As Long lpData As NOTIFYICONDATA As Long Private nfIconData As NOTIFYICONDATA Const MAX_TOOLTIP As Integer 32 这部分是声明常量 Const NIF_ICON H2 删除图标 Const NIF_MESSAGE H1 Const NIF_TIP H4 Const NIM_ADD H0 添加图标到任务栏提区 Const NIM_DELETE H2 Const WM_MOUSEMOVE H200 Const WM_LBUTTONDOWN H201 Const WM_LBUTTONUP H202 Const WM_LBUTTONDBLCLK H203 Const WM_RBUTTONDOWN H204 Const WM_RBUTTONUP H205 Const WM_RBUTTONDBLCLK H206 Const SW_RESTORE 9 Const SW_HIDE 0 Private Type NOTIFYICONDATA cbSize As Long hwnd As Long uId As Long uFlags As Long ucallbackMessage As Long hIcon As Long szTip As String 32 End Type Private Sub Command1_Click 这里是隐藏到托盘的代码 nfIconData.hwnd Me.hwnd nfIconData.uId Me.Icon nfIconData.uFlags NIF_ICON Or NIF_MESSAGE Or NIF_TIP nfIconData.ucallbackMessage WM_MOUSEMOVE nfIconData.hIcon Me.Icon.Handle nfIconData.szTip 烂泥api教程 制作与 2006.8.1 vbCrLf nfIconData.cbSize LennfIconData Call Shell_NotifyIconNIM_ADD nfIconData Me.Hide End Sub Private Sub Form_MouseMoveButton As Integer Shift As Integer X As Single Y As Single 这部分是最小到托盘以后鼠标对他所触发的事件 Dim lMsg As Single lMsg X / Screen.TwipsPerPixelX 屏幕横向X分辨率 If lMsg WM_RBUTTONUP Then PopupMenu file 右健单击弹出菜单 If lMsg WM_LBUTTONUP Then Call Shell_NotifyIconNIM_DELETE nfIconData: Me.Show 左键单击卸载托盘图标并显示窗体 End Sub ////////////////////////////////////////////////////////////////////