Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Tray Добавлено: 25.02.03 17:08  

Автор вопроса:  Synax | Web-сайт: elance.ru/sands

Как свернуть программу в сис трей

на сайте есть пример как добавить иконку

но я не знаю как свернуть программу а потом по шелчку открыь ее

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 seawolf



Вопросов: 2
Ответов: 2
 Профиль | | #1 Добавлено: 25.02.03 17:54

Я вот недавно начал изучать вб, и тоже столкнулся с этой проблеммой. То что на этом сайте есть на эту тему, никоим образом не помогает, после долгих поисков в интеренете, и чтения хелпа, итд, я написал нужное мне, и работает :) вот примерчик, он должен разьяснить что к чему.

1. создай форму

2. Введи в прожект новый модуль, в нем писать следующее:

Option Explicit

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

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
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDBLCLK = &H206
Public Const HWND_TOPMOST = -1

Public nid As NOTIFYICONDATA

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

3. На форме открой едитор менюшек, и там сделай меню с caption Systray и name systray и два подменю, первый с caption: выход и name: mnuexit и второй с caption восстановить и  name restore.

4. открой код и запиши:

Private Sub Form_Load()
Me.Show
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim Sys As Long
Sys = x / Screen.TwipsPerPixelX
Select Case Sys
Case WM_LBUTTONDBLCLK:
WindowState = vbNormal
Me.Show
Case WM_RBUTTONDOWN:
Me.PopupMenu mnuSystray
End Select
End Sub

Private Sub Form_Resize()
If WindowState = vbMinimized Then
Me.Hide
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 = Me.Caption & vbNullChar
End With
Shell_NotifyIcon NIM_ADD, nid
Else
Shell_NotifyIcon NIM_DELETE, nid
End If
End Sub
Private Sub Form_Unload(Cancel As Integer)
Shell_NotifyIcon NIM_DELETE, nid
End
End Sub
Private Sub mnuexit_Click()
Unload Me
End Sub
Private Sub mnuRestore_Click()
WindowState = vbNormal
Me.Show
End Sub

5. Запусти прогу :-) Теперь когда нажимаешь minimise она сворачивается в систрей, и там если кликнуть левой кнопкой мыши два раза, прога восстановится, если кликнуть правой один раз то всплывет менюшка с двумя опшнами. Удачи :-)

Ответить

Номер ответа: 2
Автор ответа:
 Synax



Вопросов: 20
Ответов: 61
 Web-сайт: elance.ru/sands
 Профиль | | #2
Добавлено: 25.02.03 19:59
Thank you!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам