Страница: 1 |
Страница: 1 |
Вопрос: Как активировать?
Добавлено: 29.07.08 14:18
Автор вопроса: pasha | ICQ: 209913513
Всем доброго времени суток!
Такой вопрос:
вот висит в панели задач форма, на ней есть текстбокс. в него добавляется элемент (автоматом с помощью таймера). Так вот как мне при этом (или другом) событии вывести форму на экран? как ее активизировать, чтобы она стала активной? (масло маслянное :-) )
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #1
Добавлено: 29.07.08 14:27
Господа, приношу свои извенения за глупый вопрос, заданный в первом посте. Понадобились просто прямые руки
Но вот есть более сложный для меня вопросик.
В программке использую notifyicon. После выгрузки программы иконка остается в трее. Каким образом ее можно оттуда убрать? Вот на этот вопрос очень хотелось бы получить ответ. Заранее благодарен!
Номер ответа: 2
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #2
Добавлено: 29.07.08 14:34
Public Const NIM_ADD = &H0
Public Const NIM_DELETE = &H2
Public Const NIM_MODIFY = &H1
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_TIP = &H4
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_RBUTTONDBLCLK = &H206
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_MOUSEMOVE = &H200
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
Public nidTemp As NOTIFYICONDATA
Public Function SetTrayIcon(Mode As Long, hWnd As Long, Icon As Long, Tip As String) As Long
nidTemp.cbSize = Len(nidTemp)
nidTemp.hWnd = hWnd
nidTemp.uID = 1&
nidTemp.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nidTemp.uCallbackMessage = 0&
nidTemp.hIcon = Icon
nidTemp.szTip = Tip & Chr$(0)
nidTemp.uCallbackMessage = WM_MOUSEMOVE
SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp)
End Function
'Использование:
' Добавить
' SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Проба"
' Изменить
' SetTrayIcon NIM_MODIFY, Me.hWnd, Me.Icon, "Ку-ку"
' Удалить
' SetTrayIcon NIM_DELETE, Me.hWnd, 0&, ""
Номер ответа: 3
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #3
Добавлено: 29.07.08 14:43
То есть я так понимаю объект notifyicn можно убирать из формы
Номер ответа: 4
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #4
Добавлено: 29.07.08 15:11
Я извеняюсь, просто я совсем начинающий. Никак не врублюсь как этим пользоваться?
в объявлении
cbSize As Long
hWnd As Long
uID As Long
uFlags As Long
uCallbackMessage As Long
hIcon As Long
szTip As String * 64
End Type
Номер ответа: 5
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #5
Добавлено: 29.07.08 15:15
все это дело в отдельный модуль сваливаешь.
а из формы, например:
да, совсем для чистого проекта...
Номер ответа: 6
Автор ответа:
Arseny
ICQ: 298826769
Вопросов: 53
Ответов: 1732
Профиль | | #6
Добавлено: 29.07.08 15:20
... вообще, если ты пишешь на .NET, то я не знаю, как ТАМ правильно сделать. Я для VB6 пример дал.
Номер ответа: 7
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #7
Добавлено: 29.07.08 15:22
вот оно в чем дело. а я со всей присущей мне наивностью запихиваю это в .NET и пытаюсь понять почему не работает
Номер ответа: 8
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #8
Добавлено: 29.07.08 15:31
а вот что получилось при конвертировании кода
Public Declare Function Shell_NotifyIconA Lib "shell32.dll" (ByVal dwMessage As Integer, ByRef lpData As NOTIFYICONDATA) As Integer
Public Const NIM_ADD As Integer = &H0
Public Const NIM_DELETE As Integer = &H2
Public Const NIM_MODIFY As Integer = &H1
Public Const NIF_ICON As Integer = &H2
Public Const NIF_MESSAGE As Integer = &H1
Public Const NIF_TIP As Integer = &H4
Public Const WM_LBUTTONDBLCLK As Integer = &H203
Public Const WM_LBUTTONDOWN As Integer = &H201
Public Const WM_LBUTTONUP As Integer = &H202
Public Const WM_RBUTTONDBLCLK As Integer = &H206
Public Const WM_RBUTTONDOWN As Integer = &H204
Public Const WM_RBUTTONUP As Integer = &H205
Public Const WM_MOUSEMOVE As Integer = &H200
Public Structure NOTIFYICONDATA
Dim cbSize As Integer
Dim hWnd As Integer
Dim uID As Integer
Dim uFlags As Integer
Dim uCallbackMessage As Integer
Dim hIcon As Integer
'UPGRADE_WARNING: Fixed-length string size must fit in the buffer. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="3C1E4426-0B80-443E-B943-0627CD55D48B"'
<VBFixedString(64), System.Runtime.InteropServices.MarshalAs(System.Runtime.InteropServices.UnmanagedType.ByValArray, SizeConst:=64)> Public szTip() As Char
End Structure
Public nidTemp As NOTIFYICONDATA
Public Function SetTrayIcon(ByRef Mode As Integer, ByRef hWnd As Integer, ByRef Icon As Integer, ByRef Tip As String) As Integer
nidTemp.cbSize = Len(nidTemp)
nidTemp.hWnd = hWnd
nidTemp.uID = 1
nidTemp.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
nidTemp.uCallbackMessage = 0
nidTemp.hIcon = Icon
nidTemp.szTip = Tip & Chr(0)
nidTemp.uCallbackMessage = WM_MOUSEMOVE
SetTrayIcon = Shell_NotifyIconA(Mode, nidTemp)
End Function
Номер ответа: 9
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #9
Добавлено: 29.07.08 15:39
только вот ругается на параметр (когда вставляю уже в событие форм_лоад) Me.hWnd , говорит "hWnd шis not a member of 'Notifycation.Notify'"
воть
Номер ответа: 10
Автор ответа:
Yanex
ICQ: 387761649
Вопросов: 32
Ответов: 169
Web-сайт:
Профиль | | #10
Добавлено: 29.07.08 16:14
Дык в нете для этого отдельный контрол есть. Даже апишки вызывать не надо.
Номер ответа: 11
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #11
Добавлено: 29.07.08 16:16
а по подробнее? лазил по нету но ненашел ничего
Номер ответа: 12
Автор ответа:
Yanex
ICQ: 387761649
Вопросов: 32
Ответов: 169
Web-сайт:
Профиль | | #12
Добавлено: 29.07.08 16:20
Ты в каком дотнете кодишь? Если в 2005 и старше, слева на панельке есть контрол. Не помню, как он называется (доступа к VB сейчас не имею), но управлять иконкой при его наличии очень просто.
Номер ответа: 13
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #13
Добавлено: 29.07.08 16:22
называется он notifyicon. но с ним проблема. когда закрываешь программу иконка не выгружается из трэя
Номер ответа: 14
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #14
Добавлено: 29.07.08 16:23
NotifyIcon или как-то так этот контрол называется
После выключения приложения может оставаться, если завершение работы программы было некорреткно - тогда не вызывается функцию, убивающая иконку, но стоит только на иконку навести - она исчезнет.
NotifyIcon не нужно как-то принудительно удалять - если работа прилоежния завершена корректно, он сам оттуда уберется
Номер ответа: 15
Автор ответа:
pasha
ICQ: 209913513
Вопросов: 10
Ответов: 45
Профиль | | #15
Добавлено: 29.07.08 16:33
спасибо