怎样使应用程序图标显示在任务栏的右下角,即输入法显示的地方?
又如何使它在任务栏正常显示,
或同时在任务栏和系统栏显示?
又如何使它在任务栏正常显示,
或同时在任务栏和系统栏显示?
解决方案 »
- 要用VB6做一个简单的仿QQ的程序,请高手帮忙提供资料
- 【困惑】CreateProcess创建的进程无法访问网络,Shell的确可以
- 引用excel11后Public Function tlbstate(tlb As Toolbar, state As Boolean) 类型不匹配
- 据说高手操作数据库都是用类来操作,做成一个中间层,不知如何去做,哪位好人能给个例子呀?
- 为何我的子窗体最大化时就会遮盖了MDI窗体的菜单,哪能位仁兄能帮我解决呀??????
- 求MSDN2003中文版本
- VB实时曲线绘制
- 应该不是很难的问题,取指定的小数位
- 在VB中用什么转义字符表示双引号啊?
- 请问安装打印机驱动程序应该对系统做那些修改???
- 一个很难的API问题 VB中如何判断系统桌面已经加栽(win200)
- 这窗体怎么做
' Public myTrayIcon As New clsSysTrayIcon
' myTrayIcon.RemoveIcon Me
' myTrayIcon.ShowIcon Me
' myTrayIcon.ChangeIcon Me, (Image, Picture Box, Etc)
' myTrayIcon.ChangeToolTip Me, InputBox("Enter Tool Tip")
'
' ****** Tray Menu Source ****** (Drop In Form)
'
'Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
' Remember..... The value of X will be different if the icon is minimised
' to the system tray. The values in this case will be as follows,
' 7680 ' MouseMove
' 7695 ' Left MouseDown
' 7710 ' Left MouseUp
' 7725 ' Left DoubleClick
' 7740 ' Right MouseDown
' 7755 ' Right MouseUp
' 7770 ' Right DoubleClick
'If myTrayIcon.bRunningInTray Then 'Check to see if form is in the system tray
' Select Case X 'If it is, use X to get message value
' Case 7710: PopupMenu Me.mnuBar1, vbPopupMenuRightButton 'Show a menubar
' Case 7725: myTrayIcon.RemoveIcon Me
' End Select
'End If
'
'End SubOption ExplicitPrivate 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
Private FormHandle As Long
Private mvarbRunningInTray As Boolean
Private SysIcon As NOTIFYICONDATA
Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As LongPrivate Property Let bRunningInTray(ByVal vData As Boolean)
mvarbRunningInTray = vData
End Property
Property Get bRunningInTray() As Boolean
bRunningInTray = mvarbRunningInTray
End PropertyPublic Sub ShowIcon(ByRef sysTrayForm As Form)
SysIcon.cbSize = Len(SysIcon)
SysIcon.hwnd = sysTrayForm.hwnd
SysIcon.uId = vbNull
SysIcon.uFlags = 7
SysIcon.ucallbackMessage = 512
SysIcon.hIcon = sysTrayForm.Icon
SysIcon.szTip = sysTrayForm.Caption + Chr(0)
Shell_NotifyIcon 0, SysIcon
mvarbRunningInTray = True
End SubPublic Sub RemoveIcon(sysTrayForm As Form)
SysIcon.cbSize = Len(SysIcon)
SysIcon.hwnd = sysTrayForm.hwnd
SysIcon.uId = vbNull
SysIcon.uFlags = 7
SysIcon.ucallbackMessage = vbNull
SysIcon.hIcon = sysTrayForm.Icon
SysIcon.szTip = Chr(0)
Shell_NotifyIcon 2, SysIcon
'If sysTrayForm.Visible = False Then sysTrayForm.Show 'Incase user can't see form
mvarbRunningInTray = False
End SubPublic Sub ChangeIcon(sysTrayForm As Form, picNewIcon As ListImage)If mvarbRunningInTray = True Then 'If running in the tray
SysIcon.cbSize = Len(SysIcon)
SysIcon.hwnd = sysTrayForm.hwnd
'SysIcon.uId = vbNull
'SysIcon.uFlags = 7
'SysIcon.ucallbackMessage = 512
SysIcon.hIcon = picNewIcon.Picture
'SysIcon.szTip = sysTrayForm.Caption + Chr(0)
Shell_NotifyIcon 1, SysIcon
End IfEnd SubPublic Sub ChangeToolTip(sysTrayForm As Form, strNewTip As String)If mvarbRunningInTray = True Then 'If running in the tray
SysIcon.cbSize = Len(SysIcon)
SysIcon.hwnd = sysTrayForm.hwnd
SysIcon.szTip = strNewTip & Chr(0)
Shell_NotifyIcon 1, SysIcon
End IfEnd Sub
http://www.hongen.com/pc/program/apitutor/api0012/api01.htm
这个很精典:
http://www.yesky.com/20011024/202037_4.shtml
Private Declare Function CloseWindow Lib "user32" (ByVal hwnd As Long) As Long ' 常数声明
Private Const WM_SYSCOMMAND = &H112 Private Sub Form_Load()
Msghook1.HwndHook = Form1.hwnd
' 将Msghook1绑定到Form1上
Msghook1.Message(WM_SYSCOMMAND) = True
' Msghook1拦截WM_SYSCOMMAND消息
End Sub Private Sub Msghook1_Message(ByVal msg As Long, ByVal wp As Long, ByVal lp As Long, result As Long)
Text1.Text = wp
Text2.Text = lp
If wp = 61472 Or wp = 61536 Then
' 单击的是最小化或关闭按钮
CloseWindow Form1.hwnd
' 最小化窗口
Form1.Visible = False
' 使窗口消失
Unload Form1
' 卸载窗口。如果有通知栏图标,就不用卸载窗口
Else
Call Msghook1.InvokeWindowProc(msg, wp, lp)
' 其他的事件由默认窗口函数处理
End If
End Sub 不仅是单击窗口右上角的按钮,其实,在系统菜单里选择最小化和关闭菜单项,也有同样的效果。到此,对金山词霸的一个小秘密就发觉出来了,接下来,就看看如何实现通知栏图标吧。