WM_WINDOWPOSCHANGING
От: FSoft Россия http://fsoft.tk/
Дата: 31.12.03 13:42
Оценка:
Есть код на 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>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.