Есть код на VB (ISubclass_WindowProc — перехват WM_WINDOWPOSCHANGING):
Private mWndPos As WINDOWPOS 'window position
...
Private Function ISubclass_WindowProc(ByVal hwnd As Long, ByVal iMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
As Long
If iMsg = WM_WINDOWPOSCHANGING Then
CopyMemory mWndPos, ByVal lParam, LenB(mWndPos)
With mWndPos
.x = 0
.y = 0
.cx = mW 'screen width
.cy = mH 'screen height
.hwndInsertAfter = HWND_TOPMOST
.Flags = SWP_NOZORDER
End With
CopyMemory ByVal lParam, mWndPos, LenB(mWndPos)
End If
End Function
По идее, это должно препятствовать изменению как размеров и координат
окна, так и положения его поверх остальных окон (Z-order). Но почему-то
всё равно можно изменить его z-order, установив другое окно поверх других:
SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE Or SWP_NOMOVE
Как можно заставить окно быть поверх других, чтобы его нельзя было
перекрыть никаким окном?
--------------------------------------
С уважением, Михаил Юрасов <fsoftware AT yandex.ru>