Страница: 1 |
Вопрос: Как активировать? | Добавлено: 29.07.08 14:18 |
Автор вопроса: ![]() |
Всем доброго времени суток!
Такой вопрос: вот висит в панели задач форма, на ней есть текстбокс. в него добавляется элемент (автоматом с помощью таймера). Так вот как мне при этом (или другом) событии вывести форму на экран? как ее активизировать, чтобы она стала активной? (масло маслянное :-) ) |
Ответы | Всего ответов: 15 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #1 | Добавлено: 29.07.08 14:27 |
Господа, приношу свои извенения за глупый вопрос, заданный в первом посте. Понадобились просто прямые руки ![]() Но вот есть более сложный для меня вопросик. В программке использую notifyicon. После выгрузки программы иконка остается в трее. Каким образом ее можно оттуда убрать? Вот на этот вопрос очень хотелось бы получить ответ. Заранее благодарен! |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ICQ: 298826769 Вопросов: 53 Ответов: 1732 |
Профиль | Цитата | #2 | Добавлено: 29.07.08 14:34 |
Public Declare Function Shell_NotifyIconA Lib "shell32.dll" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #3 | Добавлено: 29.07.08 14:43 |
То есть я так понимаю объект notifyicn можно убирать из формы |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #4 | Добавлено: 29.07.08 15:11 |
Я извеняюсь, просто я совсем начинающий. Никак не врублюсь как этим пользоваться?
в объявлении Public Declare Function Shell_NotifyIconA Lib "shell32.dll" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long ругается на NOTIFYICONDATA, мол "Type NOTIFYICONDATA is not defined". оответственно ругается на объявление типа
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 |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ICQ: 298826769 Вопросов: 53 Ответов: 1732 |
Профиль | Цитата | #5 | Добавлено: 29.07.08 15:15 |
все это дело в отдельный модуль сваливаешь.
а из формы, например: SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Проба"
То есть я так понимаю объект notifyicn можно убирать из формы
да, совсем для чистого проекта... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ICQ: 298826769 Вопросов: 53 Ответов: 1732 |
Профиль | Цитата | #6 | Добавлено: 29.07.08 15:20 |
... вообще, если ты пишешь на .NET, то я не знаю, как ТАМ правильно сделать. Я для VB6 пример дал. |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #7 | Добавлено: 29.07.08 15:22 |
вот оно в чем дело. а я со всей присущей мне наивностью запихиваю это в .NET и пытаюсь понять почему не работает ![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #8 | Добавлено: 29.07.08 15:31 |
а вот что получилось при конвертировании кода
'UPGRADE_WARNING: Structure NOTIFYICONDATA may require marshalling attributes to be passed as an argument in this Declare statement. Click for more: 'ms-help://MS.VSCC.v90/dv_commoner/local/redirect.htm?keyword="C429C3A5-5D47-4CD9-8F51-74A1616405DC"'
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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #9 | Добавлено: 29.07.08 15:39 |
только вот ругается на параметр (когда вставляю уже в событие форм_лоад) Me.hWnd , говорит "hWnd шis not a member of 'Notifycation.Notify'"
воть |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ICQ: 387761649 Вопросов: 32 Ответов: 169 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 29.07.08 16:14 |
Дык в нете для этого отдельный контрол есть. Даже апишки вызывать не надо. |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #11 | Добавлено: 29.07.08 16:16 |
а по подробнее? лазил по нету но ненашел ничего |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ICQ: 387761649 Вопросов: 32 Ответов: 169 |
Web-сайт: Профиль | Цитата | #12 | Добавлено: 29.07.08 16:20 |
Ты в каком дотнете кодишь? Если в 2005 и старше, слева на панельке есть контрол. Не помню, как он называется (доступа к VB сейчас не имею), но управлять иконкой при его наличии очень просто. |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #13 | Добавлено: 29.07.08 16:22 |
называется он notifyicon. но с ним проблема. когда закрываешь программу иконка не выгружается из трэя |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Вопросов: 130 Ответов: 6602 |
Профиль | Цитата | #14 | Добавлено: 29.07.08 16:23 |
NotifyIcon или как-то так этот контрол называется
После выключения приложения может оставаться, если завершение работы программы было некорреткно - тогда не вызывается функцию, убивающая иконку, но стоит только на иконку навести - она исчезнет. NotifyIcon не нужно как-то принудительно удалять - если работа прилоежния завершена корректно, он сам оттуда уберется |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 209913513 Вопросов: 10 Ответов: 45 |
Профиль | Цитата | #15 | Добавлено: 29.07.08 16:33 |
спасибо |
Страница: 1 |
|