Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут
закрыты.
Читайте
требования к создаваемым темам.
-
Юджин
-
- Обычный пользователь
-
-
- Сообщения: 90
- Зарегистрирован: 26.10.2005 (Ср) 12:49
Юджин » 22.03.2006 (Ср) 15:34
сначала был код
- Код: Выделить всё
в модуль:
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_LBUTTONDBLCLK = &H203
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 NID As NOTIFYICONDATA
Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias _
"Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) _
As Long
Public Sub AddTrayIcon(IDhWnd As Long, Icon As Long, Text As String)
NID.szTip = Left$(Text, 63) & Chr$(0)
NID.uFlags = NIF_TIP + NIF_MESSAGE + NIF_ICON
NID.uID = IDhWnd
NID.cbSize = Len(NID)
NID.hWnd = IDhWnd
NID.uCallbackMessage = WM_RBUTTONDOWN
NID.hIcon = Icon
Res& = Shell_NotifyIcon(NIM_ADD, NID)
End Sub
Public Sub DeleteTrayIcon()
NID.cbSize = Len(NID)
Res& = Shell_NotifyIcon(NIM_DELETE, NID)
End Sub
Public Sub ItemModify(Icon As Long, Text As String)
NID.uFlags = NIF_TIP + NIF_ICON
NID.cbSize = Len(NID)
NID.szTip = Left$(Text, 63) & Chr$(0)
NID.hIcon = Icon
Res& = Shell_NotifyIcon(NIM_MODIFY, NID)
End Sub
в форму:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Y = 0 And X = 513 * Screen.TwipsPerPixelX Then
Me.WindowState = 0
Me.Show
End If
End Sub
Private Sub Form_Resize()
If Me.WindowState = 1 Then
AddTrayIcon Me.hWnd, Me.Icon, "Пограмма такая-то"
Me.Hide
Else
Me.Show
DeleteTrayIcon
End If
End Sub
теперь появилась необходимость развернуть из трея прогу если юзер соглашается посмотреть инфо и жмет "ok". сделал это через
- Код: Выделить всё
If MsgBox("Появились новые материалы", vbExclamation) = vbOK Then
Me.Show
DeleteTrayIcon
End If
но программа почему-то, хоть и балтается в памяти и удаляется иконка трея, не разворачивает окно. что делать?
-
Twister
-
- Теоретик
-
-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 22.03.2006 (Ср) 16:53
Нужно сначала развернуть окно, а потом уже показывать его...
А я все практикую лечение травами...
-
Юджин
-
- Обычный пользователь
-
-
- Сообщения: 90
- Зарегистрирован: 26.10.2005 (Ср) 12:49
Юджин » 22.03.2006 (Ср) 18:07
а как развернуть?
-
Twister
-
- Теоретик
-
-
- Сообщения: 2251
- Зарегистрирован: 28.06.2005 (Вт) 12:32
- Откуда: Алматы
-
Twister » 22.03.2006 (Ср) 18:12
Чесслово, забыл как это свойство в VB называется (посмотреть нет возможности).
А в Delphi это
WindowState. Можно устанавливать значения vbMinimized, vbNormal и vbMaximized.
А я все практикую лечение травами...
-
uhm
-
- Продвинутый гуру
-
-
- Сообщения: 1597
- Зарегистрирован: 02.12.2004 (Чт) 15:21
uhm » 22.03.2006 (Ср) 18:48
Сюда смотрел? Я честно скажу - туда не заглядывал. Но если ты не заглядывал, то загляни.
Быть... или не быть. Вот. В чём вопрос?
Вернуться в Visual Basic 1–6
Кто сейчас на конференции
Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 67