Страница: 1 |
У меня в программе при двойном нажатии на иконку в SysTray'e открывается окно программы, но чтобы нажать какую-либо кнопку, ввести текст в поле, необходимо сначала мышкой щёлкнуть где-либо на форме. Как избавиться от ненужных щелчков мышки?
Да, и не только на форму. Пробовал и на форму, и на Txt-блок Esli idti glupim putem to click mojno simulirowat, no eto wse uhodi ot problemi. Ti opishi kak ti otkriwaesh okno! Kusok koda kin chtoli... Вот код модуля Declare Function Shell_NotifyIcon Lib "shell32.dll" _ Public Enum dwMess Type NOTIFYICONDATA Public Enum uF Public Enum CallMess Dim NID As NOTIFYICONDATA Dim IDICON As Long AddREsult = Shell_NotifyIcon(NIM_ADD, NID) А это в программе Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 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... 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) 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 Была такая проблема. Помогла эмуляция нажатия кнопки мышки. Da zachem emulatsija? Ja j napisal wot :AppActivate (App.Title) Etim wse i aktiwiruetsa. Страница: 1 |
Вопрос: Проблемка после DblClick'a по иконке в SysTray'e
Добавлено: 07.08.02 19:44
Автор вопроса: Zeus | Web-сайт:
Ответы
Всего ответов: 8
Номер ответа: 1
Автор ответа:
MAGNUS
Вопросов: 12
Ответов: 430
Профиль | | #1
Добавлено: 07.08.02 20:46
A SetFocus na formu probowal?
Номер ответа: 2
Автор ответа:
Zeus
ICQ: 161801353
Вопросов: 63
Ответов: 220
Web-сайт:
Профиль | | #2
Добавлено: 07.08.02 21:15
Номер ответа: 3
Автор ответа:
MAGNUS
Вопросов: 12
Ответов: 430
Профиль | | #3
Добавлено: 07.08.02 21:35
Номер ответа: 4
Автор ответа:
Zeus
ICQ: 161801353
Вопросов: 63
Ответов: 220
Web-сайт:
Профиль | | #4
Добавлено: 08.08.02 19:53
Alias "Shell_NotifyIconA" (ByVal dwMessage As dwMess, _
IpData As NOTIFYICONDATA) As Long
NIM_ADD = &H0
NIM_DELETE = &H2
NIM_MODIFY = &H1
End Enum
cbSize As Long
hwnd As Long
uID As Long
uFlags As uF
uCallbackMessage As CallMess
hIcon As Long
szTip As String * 64
End Type
nif_message = &H1
nif_icon = &H2
nif_tip = &H4
End Enum
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
Sub Addicon()
Dim IDLib 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)
End Sub
Sub DeleteIcon()
Dim DeleteResult As Long
DeleteResult = Shell_NotifyIcon(NIM_DELETE, NID)
End Sub
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
Номер ответа: 6
Автор ответа:
MAGNUS
Вопросов: 12
Ответов: 430
Профиль | | #6
Добавлено: 09.08.02 14:30
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
Номер ответа: 7
Автор ответа:
ZEP
Вопросов: 2
Ответов: 10
Профиль | | #7
Добавлено: 12.08.02 10:52
Номер ответа: 8
Автор ответа:
MAGNUS
Вопросов: 12
Ответов: 430
Профиль | | #8
Добавлено: 12.08.02 14:44