Dim MouseButton As Integer
MouseButton = (X And &HFF) / Screen.TwipsPerPixelX
MouseButton = (X And &HFF) / Screen.TwipsPerPixelX
MouseButton = X / Screen.TwipsPerPixelX
awl100Alex писал(а):Но как избежать такого неприятного эффекта???
awl100Alex писал(а):iGrok
Согласен. Действительно конъюнкция установленного байта с X абсолютно бессмысленна...
Private Const NIF_MESSAGE = &H1
Private Const NIF_ICON = &H2
Private Const NIF_TIP = &H4
Private Const NIM_ADD = &H0
Private Const NIM_MODIFY = &H1
Private Const NIM_DELETE = &H2
Private Const WM_RBUTTONDOWN = &H204
Private Const WM_NULL = &H0
'Объявляем соответствующую константу
Private Const WM_MOUSEMOVE = &H200
Public Sub Add()
Dim ret As Long
NID.uID = m_hWnd
NID.hwnd = m_hWnd
NID.hIcon = m_Icon
NID.szTip = Left$(m_ToolTipText, 63) & Chr$(0)
NID.uFlags = NIF_TIP + NIF_MESSAGE + NIF_ICON
NID.uCallbackMessage = WM_MOUSEMOVE
NID.cbSize = Len(NID)
ret = Shell_NotifyIcon(NIM_ADD, NID)
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
cTray.CallEvent X, Y
End Sub
iGrok писал(а):Этим от четырёхбайтовой переменной фактически отрезается только последний байт, и обнуляются все остальные.
awl100Alex писал(а):un1
Гениально! Всё работает! Молодец!iGrok писал(а):Этим от четырёхбайтовой переменной фактически отрезается только последний байт, и обнуляются все остальные.
Теперь понятно с выделением... но почему последний???.. Выделяется младший байт, то есть первый. Отсчет ведется справа налево - ведь так?
iGrok писал(а):MouseUp вместо MouseDown перевесить
Mihail_ писал(а):если не менять код, а просто вместо MouseDown подставить MouseUp, то почему-то вообще событие не проходит
Сейчас этот форум просматривают: SemrushBot и гости: 44