Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 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 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
Автор ответа:
 pasha



ICQ: 209913513 

Вопросов: 10
Ответов: 45
 Профиль | | #3 Добавлено: 29.07.08 14:43
То есть я так понимаю объект notifyicn можно убирать из формы

Ответить

Номер ответа: 4
Автор ответа:
 pasha



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
Автор ответа:
 Arseny



ICQ: 298826769 

Вопросов: 53
Ответов: 1732
 Профиль | | #5 Добавлено: 29.07.08 15:15
все это дело в отдельный модуль сваливаешь.
а из формы, например:
SetTrayIcon NIM_ADD, Me.hWnd, Me.Icon, "Проба"


То есть я так понимаю объект notifyicn можно убирать из формы

да, совсем для чистого проекта...

Ответить

Номер ответа: 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
а вот что получилось при конвертировании кода
'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
Автор ответа:
 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-сайт: Progr.Do.am
 Профиль | | #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-сайт: Progr.Do.am
 Профиль | | #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
спасибо

Ответить

Страница: 1 |

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



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