В классе Tooltip в конструкторе предлагаю код
|Function SetWindowLong(hWnd, Flag)
| If Flag = 1 Then
| '-----------------------Подмена процедуры окна--------------------
| oWindowProc = Wrap.GetWindowLong(hwnd, -4)
|
| Wrap.NumPut oWindowProc - (AddrBuff + 24 + 5), AddrBuff, 25, ""l""
| Wrap.NumPut oWindowProc - (AddrBuff + 36 + 5), AddrBuff, 37, ""l""
| Wrap.SetWindowLong hWnd, -4, AddrBuff
| '-----------------------Подмена процедуры окна--------------------
| ElseIf Flag = 0 Then
| If oWindowProc > 0 Then
| 'Восстановим родную процедуру
| Wrap.SetWindowLong hWnd, -4, oWindowProc
| End If
| End If
|End Function
изменить на
|Function SetWindowLong(hWnd, Flag)
| If Flag = 1 Then
| '-----------------------Подмена процедуры окна--------------------
| if oWindowProc = 0 then
| oWindowProc = Wrap.GetWindowLong(hwnd, -4)
| End If
|
| Wrap.NumPut oWindowProc - (AddrBuff + 24 + 5), AddrBuff, 25, ""l""
| Wrap.NumPut oWindowProc - (AddrBuff + 36 + 5), AddrBuff, 37, ""l""
| Wrap.SetWindowLong hWnd, -4, AddrBuff
| '-----------------------Подмена процедуры окна--------------------
| ElseIf Flag = 0 Then
| If oWindowProc > 0 Then
| 'Восстановим родную процедуру
| MsgBox oWindowProc
| Wrap.SetWindowLong hWnd, -4, oWindowProc
| End If
| End If
|End Function
в этом случае корректно работает выключение/включение подсказок