VB如何设置按退出变成右下角的地方?

点程序的X后,会缩小到这样应该这么写?... 点程序的X后,会缩小到这样应该这么写? 展开
 我来答
宇宙奇谈2049
2011-12-07 · TA获得超过361个赞
知道答主
回答量:114
采纳率:0%
帮助的人:91.4万
展开全部
你是指的点击关闭窗体之后,在托盘区域留下图标。
ciowangr911暗组

本文演示如何使用 Visual Basic Windows 任务栏或任务栏通知区域的充分利用。 选择的图标放鼠标 rested 通过它,将还原应用程序,单击时, 并将显示弹出式菜单时,将显示你选择的工具提示在任务栏通知区域时右键单击。 这可能因直接处理回调的 Visual Basic 的能力,因此利用完整 Shell_NotifyIcon 函数,为导出的 Shell32.dll 文件。

下面的示例可以添加到任何 Visual Basic 项目具有至少一个窗体和标准模块。

分步示例:
1. 将以下代码添加到项目中的标准模块的声明节:复制内容到剪贴板代码:
'user defined type required by Shell_NotifyIcon API call
Public 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

'constants required by Shell_NotifyIcon API call:
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_Delete = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const WM_MOUSEMOVE = &H200
Public Const WM_LBUTTONDOWN = &H201 'Button down
Public Const WM_LBUTTONUP = &H202 'Button up
Public Const WM_LBUTTONDBLCLK = &H203 'Double-click
Public Const WM_RBUTTONDOWN = &H204 'Button down
Public Const WM_RBUTTONUP = &H205 'Button up
Public Const WM_RBUTTONDBLCLK = &H206 'Double-click

Public Declare Function SetForegroundWindow Lib "user32" _
(ByVal hwnd As Long) As Long
Public Declare Function Shell_NotifyIcon Lib "shell32" _
Alias "Shell_NotifyIconA" _
(ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Public nid As NOTIFYICONDATA2. 将以下代码添加到你要响应系统送纸器图标或通知图标为你的应用程序项目中的任何形式:复制内容到剪贴板代码:
Private Sub Form_Load()
'the form must be fully visible before calling Shell_NotifyIcon
Me.Show
Me.Refresh
With nid
.cbSize = Len(nid)
.hwnd = Me.hwnd
.uId = vbNull
.uFlags = NIF_ICON or NIF_TIP or NIF_MESSAGE
.uCallBackMessage = WM_MOUSEMOVE
.hIcon = Me.Icon
.szTip = "Your ToolTip" & vbNullChar
End With
Shell_NotifyIcon NIM_ADD, nid
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'this procedure receives the callbacks from the System Tray icon.
Dim Result As Long
Dim msg As Long
'the value of X will vary depending upon the scalemode setting
If Me.ScaleMode = vbPixels Then
msg = X
Else
msg = X / Screen.TwipsPerPixelX
End If
Select Case msg
Case WM_LBUTTONUP '514 restore form window
Me.WindowState = vbNormal
Result = SetForegroundWindow(Me.hwnd)
Me.Show
Case WM_LBUTTONDBLCLK '515 restore form window
Me.WindowState = vbNormal
Result = SetForegroundWindow(Me.hwnd)
Me.Show
Case WM_RBUTTONUP '517 display popup menu
Result = SetForegroundWindow(Me.hwnd)
Me.PopupMenu Me.mPopupSys
End Select
End Sub

Private Sub Form_Resize()
'this is necessary to assure that the minimized window is hidden
If Me.WindowState = vbMinimized Then Me.Hide
End Sub

Private Sub Form_Unload(Cancel As Integer)
'this removes the icon from the system tray
Shell_NotifyIcon NIM_Delete, nid
End Sub

Private Sub mPopExit_Click()
'called when user clicks the popup menu Exit command
Unload Me
End Sub

Private Sub mPopRestore_Click()
'called when the user clicks the popup menu Restore command
Dim Result As Long
Me.WindowState = vbNormal
Result = SetForegroundWindow(Me.hwnd)
Me.Show
End Sub3.使同一窗体添加以上代码上的以下的属性设置:引用:
Property Required Setting for Taskbar Notification Area example
-----------------------------------------------------------------------
Icon = The icon you want to appear in the system tray.
Minbutton = True
ShownInTaskbar = False4.向同一个窗体使用菜单编辑器中添加下面的菜单项:引用:
Caption Name Enabled Visible Position
---------------------------------------------------------
&SysTray mPopupSys True False Main Level
&Restore mPopRestore True True Inset one
&Exit mPopExit True True Inset one根据需要,可以添加其他菜单项。

任务栏通知区域灵活性

还可以修改通过更改下面的行在 Form _ Load 过程中出现通知图标上的工具提示:引用:
.szTip = "Your ToolTip" & vbNullChar与你想要显示的文本替换"工具提示"。

可以修改通过更改下面的行在 Form _ Load 过程中出现任务栏通知区域中,图标:引用:
.hIcon = Me.Icon替换 Me.Icon 与项目中的任何图标。

可以更改任何任务栏通知区域设置 NIM_ADD 常量的使用后随时通过重新分配 nid 变量中的值,,然后使用 Shell_NotifyIcon API 调用的以下变体:引用:
Shell_NotifyIcon NIM_MODIFY, nid.但是,如果你希望接收回调,则不同窗体将需要先删除当前的图标 NIM_Modify 函数不接受一个新的 hwnd 也使用"Shell_NotifyIcon NIM_Delete nid"将需要将其他图标添加到新的窗体使用 systray"Shell_NotifyIcon NIM_ADD,nid"重填 nid 类型使用新的窗体 Hwnd 后。 还可以声明 nid 类型为每个要显示图标,在 Windows 系统任务栏和更改它们在每个窗体中激活使用 NIM_Delete 和 NIM_ADD 序列的事件的窗体的单独副本。

参考资料: http://hi.baidu.com/msokd/blog/item/2dfce6e95596b237b90e2de9.html

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式