nie działa żaden StayOnTop

0

Heii

Status MainForm'a aplikacji ma okienko z logowaniem
Pozostałe formy usiłuję zrobić zawsze na wierzchu poprzez:

  1. ustawienie parametru FormStyle, fsStayOnTop
  2. SetWindowPos(Form1.Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOCOPYBITS);
    Aplikacja jest ukryta na pasku (tym koło "startu")

Mimo to nic to nie daje. Nawet głupi notatnik zasłania moją formę.
Jak to zrobić, żeby była ZAWSZE na wierzchu?

0

PS ShowModal też nic nie dawał, poza tym często używam parametru Visible co kłóci się z formą modalną

0

Możesz np. przerobić na pascala i odpalić w jakimś timerze:

bool ForceForegroundWindow(HWND hWnd)
{
 if (!IsWindow(hWnd))
   return false;

 HWND hCurWnd=GetForegroundWindow();
 if (hCurWnd==hWnd)
   return true;

 if (GetWindowLong(hWnd,GWL_STYLE) & WS_MINIMIZE)
   ShowWindow(hWnd,SW_SHOWNOACTIVATE);

 AttachThreadInput(GetWindowThreadProcessId(hCurWnd,NULL),
                   GetCurrentThreadId(),
                   1);

 SetForegroundWindow(hWnd);

 AttachThreadInput(GetWindowThreadProcessId(hCurWnd,NULL),
                   GetCurrentThreadId(),
                   0);
                   
 return (GetForegroundWindow()==hWnd);
}
0

aż się chyba zarejestruję żeby minusować...

1 użytkowników online, w tym zalogowanych: 0, gości: 1