| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1750 人关注过本帖
标题:求助 请问系统托盘控件这么用的???????????????????? ...
只看楼主 加入收藏
hanyiask
Rank: 1
来 自:滁州
等 级:新手上路
帖 子:345
专家分:0
注 册:2007-2-6
结帖率:100%
收藏
 问题点数:0 回复次数:10 
求助 请问系统托盘控件这么用的???????????????????????
我下载一个名字叫做TubrTray1的系统托盘控件可是我不知道怎么用??请高手赐教


他的扩展名为.ocx
最好说的具体一点的使用方法如果想让程序在任务托盘中出现图标这么做,

什么属性状态是设置的???????????????????????????
搜索更多相关主题的帖子: 控件 托盘 系统 
2007-09-13 12:57
不惑
Rank: 2
等 级:论坛游民
威 望:2
帖 子:569
专家分:13
注 册:2007-3-22
收藏
得分:0 
在组件服务中把这个东东先添加进去。
再具体的我也没用过这个控件了,说不来
2007-09-13 13:51
purana
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:广东-广州
等 级:版主
威 望:66
帖 子:6039
专家分:0
注 册:2005-6-17
收藏
得分:0 
在部件里添加该控件.
然后在对象浏览器里查看其属性.方法.事件.等.

我的msn: myfend@
2007-09-13 14:07
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 

不用控件!
代码如下:

在WINDOWS98里,右下角有许多应用程序的图标。而程序本身的窗口是隐藏的,若你需要调用应用程序的窗口,则双击该图标即可。这种程序称为托盘程序。这是WINDOWS98操作系统的一大特色。使用户能够更加快捷的显示和隐藏应用程序,可以使任务栏不致于太乱。
托盘程序在Visual Basic里是怎么实现的呢?相信大家以看过一些相关的文章,但是这些文章所介绍的,主要是面对初学者如何掌握实现系统托盘,但在真正的程序编写中却不适用,原因如下:
(1)如果我要在程序中随时设置托盘显示的图标
(2)如何我我要在程序中随时控制托盘的显示、隐藏、变化
(3)如何我要在程序中随时修改托盘的鼠标触发事件
相信这一系列的问题,如果通过那些文章介绍所说的,那么你的程序代码一定会非常杂乱,为了使系统托盘有更强的维护性、继承性,我们有必要制作一个模块化的托盘程序,请大家先看看下面的示例:
注:SetTrayIcon 是自定义的函数
调用方法: SetTrayIcon 图标,"鼠标移到托盘上所显示的文字","操作"
1、增加系统的托盘
SetTrayIcon Me.Icon, "中华人民共和国", "Add"
2、删除系统的托盘
SetTrayIcon Me.Icon, "", "Del"
3、修改系统的托盘
SetTrayIcon Image1.Picture, "你好!!", "Modi"
4、程序退出时的系统托盘
SetTrayIcon Me.Icon, "", "Exit"
补充:大家如果需要实现动画托盘,则可使用 Timer 定时修改系统的托盘。
请大家新建一个模块(.bas)文件,自定义 SetTrayIcon 函数及其他,这样在以后的任何程序中只要调用此模块就可以了。
`本模块是有关系统托盘的
Option Explicit

Const NIM_ADD = 0 `加入图标到系统状态区中
Const NIM_MODIFY = 1 `修改系统状态区的图标
Const NIM_DELETE = 2 `删除系统状态区的图标

Const NIF_MESSAGE = 1 `消息
Const NIF_ICON = 2 `设置图标
Const NIF_TIP = 4 `提示

Type NOTIFYICONDATA `定义系统状态区的图标
cbSize As Long
hWnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long `建立系统状态区的图标

Const GWL_WNDPROC = (-4) `窗口函数的地址
Const WM_USER = &H400
Const WM_MOUSEFIRST = &H200`鼠标移动时发生,比 WM_MOUSEMOVE 要早
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 WM_MBUTTONDOWN = &H207`中间键按下时发生
Const WM_MBUTTONUP = &H208`中间键放开时发生
Const WM_MBUTTONDBLCLK = &H209 `中间键双击时发生
Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long `将消息传送给指定的窗口
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long `取得窗口消息
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long `设置窗口消息

Dim tray_win As Long `保存窗口的变量
Dim tray_nid As NOTIFYICONDATA `定义系统区图标
Dim tray_IsWinAddress As Boolean `是否取得窗口信息的判断
Const uID = 9998
Const tray_uMessage = WM_USER + 100

`Msg 传过来的是区域(如果工作区、标题区、系统状态区等等) lParam 传过来的是消息(如鼠标左键点击、右键点击等等) wParam 自己感觉没有多大的用处,通过前面传过来的信息,进行判断处理
Function trayWndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_USER + 100 Then
Select Case lParam `下面是大部分的鼠标操作,你可根据所需的事件,定义自己的操作
Case WM_MOUSEFIRST `鼠标移动时发生,比 WM_MOUSEMOVE 要早

Case WM_MOUSEMOVE `鼠标移动时发生

Case WM_LBUTTONDOWN `鼠标左键按下时发生

Case WM_LBUTTONUP `鼠标左键放开时发生

Case WM_LBUTTONDBLCLK `鼠标左键双击时发生

Case WM_RBUTTONDOWN `鼠标右键按下时发生

Case WM_RBUTTONUP `鼠标右键放开时发生

Case WM_RBUTTONDBLCLK `鼠标右键双击时发生

Case WM_MBUTTONDOWN `中间键按下时发生

Case WM_MBUTTONUP `中间键放开时发生

Case WM_MBUTTONDBLCLK`中间键双击时发生

End Select
End If
trayWndProc = CallWindowProc(tray_win, hWnd, Msg, wParam, lParam) `将消息传送给指定的窗口
End Function

Function SetTrayIcon(ByVal Icon As Long, ByVal Tip As String, ByVal Action As String)
If tray_IsWinAddress = False Then `判断是否需要取得、设置窗口信息,如果重复取得、设置,将会造成程序死掉
tray_win = GetWindowLong(Form1.hWnd, GWL_WNDPROC) `取得(备份)窗口信息
SetWindowLong Form1.hWnd, GWL_WNDPROC, AddressOf trayWndProc `设置新的窗口信息
End If

tray_nid.cbSize = Len(tray_nid) `取数据结构的长度设置给 cbSize
tray_nid.hWnd = Form1.hWnd `设置图标的句柄,这里为本窗口的
tray_nid.uID = 9999
tray_nid.uFlags = NIF_ICON + NIF_TIP + NIF_MESSAGE `设置图标、提示、消息
tray_nid.hIcon = Icon `图标
tray_nid.szTip = Tip + Chr(0) `图标提示
tray_nid.uCallbackMessage = tray_uMessage

Select Case Action
Case "Add"
Shell_NotifyIcon NIM_ADD, tray_nid`加入图标到系统状态区中
Case "Del"
Shell_NotifyIcon NIM_DELETE, tray_nid `删除系统区的图标
Case "Modi"
Shell_NotifyIcon NIM_MODIFY, tray_nid `修改系统区的图标
Case "Exit"
Shell_NotifyIcon NIM_DELETE, tray_nid `删除系统区的图标
SetWindowLong Form1.hWnd, GWL_WNDPROC, tray_win `恢复窗口信息
End Select
tray_IsWinAddress = True `不需要再取得窗口信息
End Function


[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-09-13 14:07
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 

.................好不容易发次经典代码居然没人顶.


[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-09-13 15:13
mohan123
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2007-9-10
收藏
得分:0 
我是初学者,帮你顶下。
2007-09-13 17:25
hanyiask
Rank: 1
来 自:滁州
等 级:新手上路
帖 子:345
专家分:0
注 册:2007-2-6
收藏
得分:0 

下午有点事情不在线不好意思啊现在我帮你顶


但愿朝阳常照我土,莫忘烈士鲜血满地!
2007-09-13 18:07
multiple19O2
Rank: 1
等 级:新手上路
帖 子:326
专家分:0
注 册:2007-8-29
收藏
得分:0 
[QUOTE]求助 请问系统托盘控件这么用的???????????????????????????????????[/QUOTE]

这问题有这么难?
2007-09-13 21:11
lxdwwei
Rank: 2
等 级:论坛游民
帖 子:140
专家分:40
注 册:2007-7-9
收藏
得分:0 

把代码复制到VB就全变红色的了

随风逐流 你的注释都是后来在VB外添加的吧
用的符号怎么是"`"


专业收购出售各类旧版人民币,纪念币等收藏品!
联系QQ:110666117 电话:18610655907
2007-09-13 23:19
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 
以下是引用lxdwwei在2007-9-13 23:19:00的发言:

把代码复制到VB就全变红色的了

随风逐流 你的注释都是后来在VB外添加的吧
用的符号怎么是"`"

换成单引号嘛.'
那个是注释,很明显嘛


[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-09-14 12:40
快速回复:求助 请问系统托盘控件这么用的????????????????? ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030358 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved