Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Проблемка после DblClick'a по иконке в SysTray'e Добавлено: 07.08.02 19:44  

Автор вопроса:  Zeus | Web-сайт: apirussia.by.ru | ICQ: 161801353 

У меня в программе при двойном нажатии на иконку в SysTray'e открывается окно программы, но чтобы нажать какую-либо кнопку, ввести текст в поле, необходимо сначала мышкой щёлкнуть где-либо на форме.

Как избавиться от ненужных щелчков мышки?

Ответить

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

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



Вопросов: 12
Ответов: 430
 Профиль | | #1 Добавлено: 07.08.02 20:46
A SetFocus na formu probowal?

Ответить

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



ICQ: 161801353 

Вопросов: 63
Ответов: 220
 Web-сайт: apirussia.by.ru
 Профиль | | #2
Добавлено: 07.08.02 21:15

Да, и не только на форму. Пробовал и на форму, и на Txt-блок

Ответить

Номер ответа: 3
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #3 Добавлено: 07.08.02 21:35

Esli idti glupim putem to click mojno simulirowat, no eto wse uhodi ot problemi.

Ti opishi kak ti otkriwaesh okno! Kusok koda kin chtoli...

Ответить

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



ICQ: 161801353 

Вопросов: 63
Ответов: 220
 Web-сайт: apirussia.by.ru
 Профиль | | #4
Добавлено: 08.08.02 19:53

Вот код модуля

 

Declare Function Shell_NotifyIcon Lib "shell32.dll" _
    Alias "Shell_NotifyIconA" (ByVal dwMessage As dwMess, _
    IpData As NOTIFYICONDATA) As Long

Public Enum dwMess
    NIM_ADD = &H0
    NIM_DELETE = &H2
    NIM_MODIFY = &H1
End Enum

Type NOTIFYICONDATA
    cbSize As Long
    hwnd As Long
    uID As Long
    uFlags As uF
    uCallbackMessage As CallMess
    hIcon As Long
    szTip As String * 64
End Type

Public Enum uF
    nif_message = &H1
    nif_icon = &H2
    nif_tip = &H4
End Enum

Public Enum CallMess
    WM_MOUSEMOVE = &H200
    WM_LBUTTONDOWN = &H201
    WM_LBUTTONUP = &H202
    WM_LBUTTONDBLCLK = &H203
    WM_RBUTTONDOWN = &H204
    WM_RBUTTONUP = &H205
    WM_RBUTTONDBLCLK = &H206
    WM_MBUTTONDOWN = &H207
    WM_MBUTTONUP = &H208
    WM_MBUTTONDBLCLK = &H209
    WM_SETFOCUS = &H7
    WM_KEYDOWN = &H100
    WM_KEYFIRST = &H100
    WM_KEYLAST = &H108
    WM_KEYUP = &H101
End Enum


Declare Function loadlibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Declare Function LoadIconA Lib "user32" (ByVal hinstance As Long, ByVal IpIconName As String) As Long
Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Declare Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long

    Dim NID As NOTIFYICONDATA
Sub Addicon()
    Dim IDLib As Long  

    Dim IDICON As Long  
    Const IDMyIcon = 101
    Dim AddREsult As Long
   
    IDICON = frmMain.Picture1                   
    NID.cbSize = Len(NID)
    NID.hwnd = frmMain.hwnd                   
    NID.uID = IDMyIcon
    NID.uFlags = nif_message + nif_icon + nif_tip
    NID.uCallbackMessage = WM_LBUTTONDOWN
    NID.hIcon = IDICON
    NID.szTip = Left$("Zeus", 63) & Chr(0)

    AddREsult = Shell_NotifyIcon(NIM_ADD, NID)
End Sub
Sub DeleteIcon()
    Dim DeleteResult As Long
    DeleteResult = Shell_NotifyIcon(NIM_DELETE, NID)
End Sub

А это в программе

 

 

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Y = 0 Then
        Select Case X
        Case 515 * Screen.TwipsPerPixelX
            If ShowFR = False Then
                frmMain.Show
                ShowFR = True
            Else: frmMain.Hide
                ShowFR = False
            End If
            txtHour.SetFocus
        Case 517 * Screen.TwipsPerPixelX
            PopupMenu mnumenu
        End Select
    End If
End Sub

Ответить

Номер ответа: 5
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #5 Добавлено: 08.08.02 20:18

Pogodi, naskolko ja ponjal iz koda, to forma to u tebja kak pokaziwaetsa kak raz po cliku na NEJ! Nichego neponjal, ili eto ne wes kod ili on ne rabotaet, kin progu mne na milo, ja glanu...

Ответить

Номер ответа: 6
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #6 Добавлено: 09.08.02 14:30

Koroche pofiksil ja ee..

Wot kod kotorij nujno pomenjat:

Private Sub Form_MouseDOWN(Button As Integer, Shift As Integer, X As Single, Y As Single)
   Let Me.ScaleMode = VBRUN.ScaleModeConstants.vbPixels
    If Y = 0 Then
        Select Case X
       
        Case 515
            If ShowFR = False Then

                frmMain.Visible = True
             AppActivate (App.Title)
               txtHour.SetFocus
                ShowFR = True

           End If
        
       Case 517 
         PopupMenu mnumenu
        End Select
   End If
End Sub

Eto pochti toje umnojenije chtobilo u tebja tolko chut bolee rowno, i nije actiwacija twoej formi posle wiwoda na ekran , wot sobstwenno i wse.

Rabotaj

Ответить

Номер ответа: 7
Автор ответа:
 ZEP



Вопросов: 2
Ответов: 10
 Профиль | | #7 Добавлено: 12.08.02 10:52

Была такая проблема. Помогла эмуляция нажатия кнопки мышки.

Ответить

Номер ответа: 8
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #8 Добавлено: 12.08.02 14:44

Da zachem emulatsija? Ja j napisal wot :AppActivate (App.Title)

Etim wse i aktiwiruetsa.

Ответить

Страница: 1 |

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



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