когда наводим мышу на форму - форма скрывается
когда мышь НЕ над формой - форма видна
Private Sub Form_Load()
cSet False
Me.FontSize = sFont
WindowSize frmMain
WindowPosition Me, False
SetWindowLong Me.hwnd, GWL_EXSTYLE, WS_EX_LAYERED
SetWindowPos Me.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift = 2 Then
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, ByVal 0&
End If
If Button = 2 Then
PopupMenu mnuMain
End If
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift <> 2 Then
SetLayeredWindowAttributes Me.hwnd, 0, 0, LWA_ALPHA
End If
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Shift = 2 Then
SetCapture hwnd
End If
End Sub
Private Sub Timer1_Timer()
...
GetCursorPos mCoord
If PtInRegion(hRgn, mCoord.X, mCoord.Y) <> 0 Then Exit Sub
hRgn = GetTextRgn()
SetWindowRgn Me.hwnd, hRgn, True
SetLayeredWindowAttributes Me.hwnd, 0, (255 * sTransp) / 100, LWA_ALPHA
End Sub
При прочих равных условиях, VB предполагает использование твипов, а функции Win API используют пиксели.amer писал(а):с помощью дебуга выяснил, что не работает строка
If PtInRegion(hRgn, mCoord.X, mCoord.Y) = 1 Then Exit Sub
PtInRegion=0
может это зависит от ScaleMode формы
в чем нужно задавать координаты в пикселях, твипах, точках....?
а то может получается координаты региона в одних единицах измерения а экрана в других...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28